倍增
文章平均质量分 76
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ4569 [Scoi2016]萌萌哒
一眼觉得是并查集,yy了一下线段树优化发现不可sing,orz了ljss神犇被告知是倍增优化倍增,一个点[i][j]代表某个i往后2^j个数,把点按倍增次数分层,两个同层的点在一个连通块说明两个点所代表的区间相等把每个操作拆到logn个点上,两两用并查集合并然后从高层向低层下传,设当前层为j,假设x1,x2,x3……xt在一个连通块中,则将x2到xt的左儿子(即第j-1层的x)都与x1原创 2016-05-11 11:27:53 · 1379 阅读 · 1 评论 -
BZOJ2085 [Poi2010]Hamsters
因为字符串互不包含,所以求出从每一个字符串跑到另一个字符串最少要多少个字符,然后倍增floyd即可求从一个字符串到另一个字符串要多少字符就是第一个字符串最长多少的后缀与第二个字符串的前缀相等,暴力即可,易知当长度都相等的时候复杂度最高,为n*sigma len#include#include#include#include#include#include#include#in原创 2016-09-18 09:15:08 · 724 阅读 · 0 评论 -
BZOJ3230 相似子串 后缀自动机做法
……作为一名坚定的后缀自动机党,我当然要用后缀自动机做这题-_-这个……我发现我写题解的时候非常语无伦次,主要原因是后缀自动机那些术语除了一个max我都忘了,所以为了方便说话我们定义一些东西我们知道每个节点上(你理解为边上当然也可以的)有一个字符串,那么我们把这个字符串叫做a[x],这个字符串的长度叫做max[x],然后从根到一个点的路径能代表max[x]个字符串,我们把这些字符串叫做b[原创 2016-09-19 16:01:25 · 569 阅读 · 0 评论 -
BZOJ4773 负环
易知负环长度不超过n考虑朴素做法,f[i][j][k]代表从i到j,最多k条边,最小长度那么没转移一次看有没有负环即可复杂度n^2m但是并不知道题面里那个m的范围什么鬼我们可以考虑倍增优化这个东西就是倍增floyd那种从大到小枚举2的幂,如果做2^i次转移后还没有负环就做2^i次转移,否则不做类似倍增LCA复杂度n^3logn但是由于m玄学的范围跑的比暴力慢原创 2017-03-17 16:56:44 · 1420 阅读 · 0 评论 -
BZOJF2306 [Ctsc2011]幸福路径
你幸福吗?我姓姜这题为什么会出在ctsc里啊走太长之后就没贡献了倍增floyd跑跑#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#d原创 2017-03-15 16:06:23 · 736 阅读 · 0 评论