消失之物 bzoj-2287 Poj Challenge 题目大意:给定$n$个物品,第$i$个物品的权值为$W_i$。记$Count(x,i)$为第$i$个物品不允许使用的情况下拿到重量为$x$的方案数。 注释:$1\le n,val_i\le 2\cdot 10^3$。 想法:只需要用取模瞎** ...
分类:
其他好文 时间:
2018-12-10 11:32:37
阅读次数:
160
bzoj 题解: 后缀数组+RMQ 有一个性质是,若出现ABA形式,且|A|比较大|B|<=m,那么真正的B块端点可以来回滑动。 因此我们可以正反做两遍后缀数组,利用RMQ求出区间最小值即前缀长。 然后先枚举|A|,再枚举左边A的端点,这样ABA位置大体确定。 然后在两个左端点处分别向两端延伸,更新 ...
分类:
其他好文 时间:
2018-12-09 20:02:36
阅读次数:
207
参考:https://www.cnblogs.com/CQzhangyu/p/8632904.html 要开longlong的 首先看dp,设f[u]为必选u点的子树内最大联通块,p[u]为不一定选u的子树内最大联通块,转移很显然就是f[u]=max(Σf[v],0),p[u]=max(max(p[ ...
分类:
其他好文 时间:
2018-12-09 14:09:24
阅读次数:
234
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865 做出 ht[ ] 之后,sa[ ] 上每个位置和它前面与后面取 LCP ,其中较大的长度设为 d ,表示从 sa[ i ] 位置开始的子串的右端点要在 sa[ i ]+d-1 位置之后才 ...
分类:
编程语言 时间:
2018-12-08 17:03:25
阅读次数:
238
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865 唯一出现的子串就是每个后缀除去和别的后缀最长的 LCP 之外的前缀; 所以用这个更新一段区间的答案,可以用线段树维护; 在 sa[i] ~ sa[i]+LCP+1 位置的答案由 LCP+ ...
分类:
编程语言 时间:
2018-12-08 16:59:25
阅读次数:
213
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 先把三个串拼在一起,KMP 求 s1 , s2 中每个位置和 s3 的匹配情况; 注意拼三个串时加入的两个新字符不要一样,否则会影响; 然后预处理出每个位置后面的第一个 s3 的开头 — ...
分类:
编程语言 时间:
2018-12-08 11:19:28
阅读次数:
198
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 长度一般都是 1e5 ,看这个是 5e4 ,一看就是把两个串接起来做。 自己本来想的是把 s3 分别接到 s1 和 s2 后面,做后缀数组求出 s1 和 s2 的每个位置有没有作为开头出 ...
分类:
编程语言 时间:
2018-12-08 00:19:43
阅读次数:
233
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3230 作出后缀数组,从 LCP 看每个位置对于本质不同子串的贡献,而且他们已经按前面部分排好序了,所以直接在 sa[ ] 上二分就能找到询问的子串。 找最长公共前缀就用 ht[ ] 和子串的长 ...
分类:
编程语言 时间:
2018-12-07 18:26:03
阅读次数:
170
本机ac的重构kdtree没有不重构快???bzoj鬼机 ...
分类:
其他好文 时间:
2018-12-07 15:03:45
阅读次数:
128
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4104 一开始发现了给出的顺序是按这些末尾字符后面的后缀排序得到的; 然后发现可以一个一个把字符串补全; 因为首先知道所有单个字符,排序后就是那些串的第一位,和末尾连起来,得到 n+1 个二元组 ...
分类:
其他好文 时间:
2018-12-07 11:53:21
阅读次数:
116