共 10 页: 上一页 1 2 3 4 5 6 下一页 末页
摘要:题目链接 题意 有一个$n\times m$的矩阵,询问其中所有大小为$a \times b$的子矩阵的最小值之和。 $1\le n,m \le 3000$ 思路 因为是子矩阵的大小是固定的。所以想到先将其中一维的最小值求出来,然后在此基础上再去求另外一维的最小值。 看数据范围不能带$log$。在每 阅读全文
posted @ 2019-07-18 19:54 wxyww 阅读 (77) 评论 (0) 编辑
摘要:功能 李超线段树资瓷以下两种操作: 1.在二维平面内插入一条线段 2.询问与直线$x=K$相交的线段中,交点纵坐标最大为多少。 原理 结点 李超线段树的每个节点,都维护这一个优势线段。这个优势线段使得该节点所维护区间的中点在该优势线段上最大。 修改 考虑如何维护上面的结点呢。 分三种情况讨论: 1. 阅读全文
posted @ 2019-07-17 14:43 wxyww 阅读 (63) 评论 (0) 编辑
摘要:题目链接 思路 看到回文串,自然就会想到 。 还要求子串长度。那就用$SAM$。 所以每次用manacher找到一个回文串,都在$SAM$上查询其出现次数。 在$SAM$上查询的时候,肯定不能暴力找。先找到当前回文串的结束位置。然后用倍增法往上跳。一直跳到长度和当前回文串长度相同。 这个题有点卡空间 阅读全文
posted @ 2019-07-13 10:45 wxyww 阅读 (31) 评论 (0) 编辑
摘要:"题目链接" 思路 $SAM$练手题,将原串重复一遍插入到$SAM$中,然后贪心走长度为n的一个路径即可。 不用担心会直接走到终点,根据$SAM$的构造方式可以发现会先走到前面的路径。 代码 阅读全文
posted @ 2019-07-11 12:19 wxyww 阅读 (29) 评论 (0) 编辑
摘要:题目链接 思路 首先按照音色排个序,顺便离散化一下音高。 用$h[i]$表示第$i$个键的音高,用$w[i]$表示第$i$个键的春希度。 朴素$dp$ $f[i][j]$表示前i个琴键,最高的音高为j时的最大收益。 那么当$j$大于$h[i]$时,就有$f[i][j] = max(f[i 1][j] 阅读全文
posted @ 2019-06-29 16:01 wxyww 阅读 (39) 评论 (1) 编辑
摘要:题目链接 思路 非常有趣的一道题。 先考虑如何找出第K远的位置。 因为给出的序列是单调的,所以对于位置$i$的前$K$远位置肯定是一个包含位置$i$的长度为$k+1$的区间。我们用$l$表示这个区间的左端点,$r$表示这个区间的右端点。那么当$i+1$时,$l$和$r$都只会往右挪。而且往右挪的条件 阅读全文
posted @ 2019-06-29 14:28 wxyww 阅读 (35) 评论 (0) 编辑
摘要:题目链接 题意 思路 ~~调到哭系列~~ 其实就是kd tree的模板题。用堆维护出距离最小的m个点。然后在$kd tree$上查询。 这一个小地方从上午9点调到下午4点半。。。。。真的快气哭了。。。 代码 cpp //调的心累呀!!!! / @Author: wxyww @Date: 2019 0 阅读全文
posted @ 2019-06-13 16:40 wxyww 阅读 (44) 评论 (0) 编辑
摘要:题目链接 思路 $KD tree$模板题 代码 cpp include include include include include include include include using namespace std; typedef long long ll; define ls TR[rt 阅读全文
posted @ 2019-06-13 09:01 wxyww 阅读 (44) 评论 (0) 编辑
摘要:题目链接 思路 这个"$K$远“点对一直理解成了距离第$K$大的点对$233$。 要求第$K$远,那么我们只要想办法求出来最远的$K$个点对就可以了。 用一个大小为$2K$(因为每个点对会被统计两次)的小头堆维护距离最大的$K$个点对,然后在$KD tree$上查询最远点对,如果查到的点对之间的距离 阅读全文
posted @ 2019-06-13 08:50 wxyww 阅读 (35) 评论 (0) 编辑
摘要:题目链接 思路 先考虑没有额外收益的时候怎么做。 从$S$向第$i$点连一条容量为$A_i$边,表示种在$A$中的收益。 从第$i$个点向$T$连一条容量为$B_i$的边,表示种在$B$中的收益。 然后求出来最小割,用总收益减去即可。 完成之后如下图: 然后考虑如何处理额外收益 对于每一个额外的收益 阅读全文
posted @ 2019-06-10 10:56 wxyww 阅读 (46) 评论 (0) 编辑
摘要:题目链接 题意 你要解雇一些员工,其中有一些限制。即若要解雇x则必须解雇y。解雇每个人都会有一定的收益。现在要让这个收益最大。输出解雇的人数和最大收益。 思路 最大收益直接跑最大权闭合子图就好了。 然后考虑怎么统计解雇的人数。 根据最大闭合权子图的连边方式可以看出。割掉$S\rightarrow x 阅读全文
posted @ 2019-06-09 20:13 wxyww 阅读 (27) 评论 (0) 编辑
摘要:题目链接 题意 给出一个长度为$n$的序列$a$,问有多少个区间$[l,r]$满足:在区间$[l,r]$内,$[1,r l+1]$的每个整数都恰好出现了一次。 $n \le 3 \times 10 ^ 5$,$a_i \le n$ 思路 可以发现,其实最后的答案一定不会很大。 所以:暴力出奇迹!!! 阅读全文
posted @ 2019-06-06 16:57 wxyww 阅读 (130) 评论 (0) 编辑
摘要:题目链接 题意 给出n条线段。m次询问,每次询问给出一个区间$[l,r]$问最少需要多少条线段才能覆盖区间$[l,r]$。 所有坐标$\le 5\times 10^5$。$n,m\le 2\times 10^ 5$ 思路 其实是比较经典的线段覆盖问题。 $f[i][j]$表示从i开始走$2^j$条线 阅读全文
posted @ 2019-06-06 15:01 wxyww 阅读 (264) 评论 (2) 编辑
摘要:题目链接 题意 给出一个长度为$n$的序列$a$,要求分为恰好$K$段。第$i$个点的贡献是$a_i \times f(i)$,$f(x)$表示x所属的是第几段。 思路 非常巧妙的一个思路。 先让每个元素都选K遍。然后不断的删除。 具体做法就是,先求一遍前缀和。然后找出前缀和最小的$K 1$个前缀, 阅读全文
posted @ 2019-06-06 08:09 wxyww 阅读 (103) 评论 (0) 编辑
摘要:定义 所谓笛卡尔树,就是将给定的$n$个二元组$(key,val)$建成一棵树。使得如果只关注$key$,那么这是一个堆。如果只关注$val$,那么这是一棵二叉搜索树。 有没有很像$treap$。 与$treap$不同的是,笛卡尔树是可以在$O(n)$时间内构建的。而且如果给定key,那么$trea 阅读全文
posted @ 2019-06-05 22:07 wxyww 阅读 (61) 评论 (0) 编辑
摘要:题目链接 思路 用$f(i,j)$表示前i个元素,以i为右端点,j为左端点时的答案。 用个"区间修改,单点查询"的线段树维护出第二维。在从左往右枚举i的过程中。将$[lst_i+1,i]$的答案+1.将$[lst_{lst_i}+1,lst_i]$的答案 1。 代码 cpp / @Author: w 阅读全文
posted @ 2019-06-05 11:51 wxyww 阅读 (32) 评论 (0) 编辑
摘要:题目链接 题意 给出一棵树,每条边有边权。求$\sum\limits_{i=1}^n{f(i,j)}$,$f(i,j)$表示从i到j路径的异或和。 思路 $g_i$表示从根到$i$的异或和,两点之间的路径异或和就可以用$g_i \otimes g_j$表示。 先然$g_i$可以一次$dfs$求出来。 阅读全文
posted @ 2019-06-05 08:46 wxyww 阅读 (32) 评论 (0) 编辑
摘要:题意 t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数 $t \le 500,n \le 10^{19}$ 思路 首先可以想到将n质因数分解。即$n= \prod\limits_{i=1}^n{a_i}^{p^i}$ 答案就是$\prod\limits_{i=1}^n{p_i+ 阅读全文
posted @ 2019-06-01 17:35 wxyww 阅读 (32) 评论 (0) 编辑
摘要:题目链接 思路 用一个平衡树维护点的编号和权值。这里的权值是自己赋上去的。 操作1,就把x从平衡树中删掉,然后将其权值变为最小值,重新插入。 操作2,与操作1类似,只要将其权值变为最大值再重新插入就行了。 操作3,其实就是将x与他的前驱或者后继交换。也很容易实现。 操作4,查询排名。 操作5,查找第 阅读全文
posted @ 2019-05-25 17:55 wxyww 阅读 (31) 评论 (0) 编辑
摘要:题目链接 思路 首先这是一个阶梯博弈。 我们将金币两两组合,如果对方移动前一个,那么我们把后一个移动相同的距离,局面相当于没有变化。如果对方移动后一个,就相当于$NIM$游戏中,取走了一些石子。 所以这个游戏也就是金币两两组合后,有$\lceil \frac{m}{2}\rceil$ 堆石子,进行$ 阅读全文
posted @ 2019-05-15 09:52 wxyww 阅读 (52) 评论 (1) 编辑
摘要:题目链接 题意 有n个bug和s个系统。每天会等概率的在某个系统中找一个某一个bug。问找到全部n个bug并且在每个系统中都找到bug的期望天数。 思路 f[i][j]表示在j个系统中找到了i个bug的期望天数。 某天有四种可能: 1.在新的系统中找到新的bug,概率为$\frac{(n i)\ti 阅读全文
posted @ 2019-05-14 16:19 wxyww 阅读 (23) 评论 (0) 编辑
摘要:题目链接 思路 首先观察题目最后的式子$\lfloor \frac{n}{p + 1} \rfloor \le q$ 并且$\lfloor \frac{n}{q+1} \rfloor \le p$。 这个式子其实就是告诉我们$p$和$q$都要尽量大。 然后这道题就可以分成两个小题: 1.求一个子图, 阅读全文
posted @ 2019-05-11 15:47 wxyww 阅读 (103) 评论 (0) 编辑
摘要:题目链接 吐槽 竟然让$nlog$的做法卡过去了。。 思路 因为$1 \le q \le 10^5$,所以可以先对每个 标准操作 ,所操作的位置进行重标号。这样所有的下标都是在$10^5$以内的。 乘和加操作都可以写成$kx+b$的形式。然后对于这些操作维护一个 前缀 。然后就可以得到一个区间内的操 阅读全文
posted @ 2019-05-11 14:00 wxyww 阅读 (75) 评论 (0) 编辑
摘要:题意 给出一张图,将其分为一个团和一个独立集。问有多少种方案。 团和独立集都不能为空 思路 先考虑找可行方案应该怎么做 显然是个$2 sat$。可以将分到团和独立集中分别看为0和1。 如果两个点之间右边,那么必定不能同时在独立集中。如果两个点之间没有边,那么必定不能同时在团中。然后连边$求2 sat 阅读全文
posted @ 2019-05-02 15:52 wxyww 阅读 (42) 评论 (0) 编辑
摘要:题目链接 思路 既然$x$的数量那么小,我们就可以先把每个$x$搜索一遍。 枚举x的时候不需要把$a,b,c$全枚举一遍,只要枚举其中的两个就可以枚举到当前位置选任何车的情况。 然后就变成了只有$'a','b','c'$的序列。寻找满足题目要求的方案。 $2 sat$模型。 连边的时候注意一些技巧, 阅读全文
posted @ 2019-04-30 21:17 wxyww 阅读 (58) 评论 (0) 编辑
共 10 页: 上一页 1 2 3 4 5 6 下一页 末页