http://www.lydsy.com/JudgeOnline/problem.php?id=4196 https://www.luogu.org/problemnew/show/P2146 你决定设计你自己的软件包管理器。不可避免地,你要解决软件包之间的依赖问题。如果软件包A依赖软件包B,那么安 ...
分类:
其他好文 时间:
2018-03-11 17:49:05
阅读次数:
196
题目 追逐影子的人,自己就是影子 ——荷马 Allison 最近迷上了文学。她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的《荷马史诗》。但是由《奥德赛》和《伊利亚特》 组成的鸿篇巨制《荷马史诗》实在是太长了,Allison 想通过一种编码方式使得它变得短一些。 一部《荷马史诗 ...
分类:
其他好文 时间:
2018-03-11 11:45:59
阅读次数:
209
题意 两个长度为$r$的子串相等称为$r$相似,两个$r$相似的权值等于子串开头位置权值乘积,给定字符串和每个位置权值,求$r$相似子串数量和最大权值乘积 对反串建立后缀自动机得到后缀树,后缀树上两个状态的lca的长度len就是原串的两个子串的lcp,在树上进行dp,parent树上每个状态代表长度 ...
分类:
其他好文 时间:
2018-03-03 18:13:20
阅读次数:
198
[bzoj][1] [luogu][2] sol 按照$Height[i]$从大到小的顺序合并$SA[i]$和$SA[i 1]$。 考虑合并两个集合对答案的贡献。 方案数会增加$sz[x] sz[y]$ 最大值可以被$max(mx[x] mx[y],mn[x] mn[y])$更新 code cpp ...
分类:
其他好文 时间:
2018-02-24 23:03:42
阅读次数:
195
据说用后缀自动机 + dp也能做 然而并不会 后缀数组的做法呢 就是先建个后缀数组,求出height值,此时如果直接找,复杂度是n ^ 2的,肯定会超时。 但是height大的值是不会对小的产生影响的,所以可以按height大小,从大到小合并两个区间,用并查集维护就可以了 代码如下 ...
分类:
编程语言 时间:
2018-02-22 14:09:36
阅读次数:
220
题面 "Bzoj4199" Sol 后缀数组 显然的暴力就是求$LCP$+差分 $40$分 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespac ...
分类:
其他好文 时间:
2018-02-21 23:35:07
阅读次数:
230
BZOJ_4196_[Noi2015]软件包管理器_树链剖分 题意: Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所 ...
分类:
其他好文 时间:
2018-02-21 20:47:08
阅读次数:
160
题解:哈夫曼树 先补全节点,以总个数为第一关键字,高度为第二关键字,求哈夫曼树即可 问题:不明白哈夫曼树的原理及证明 ...
分类:
其他好文 时间:
2018-02-20 11:49:08
阅读次数:
139
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4199 题意: 给你一个长度为n的字符串s,和一个长为n的数组v。 对于每个整数r∈[0,n-1]: (1)问你有多少对后缀(suffix(i), suffix(j)),满足LCP(suffi ...
分类:
编程语言 时间:
2018-02-13 20:32:19
阅读次数:
200