随笔分类 -  ----树链剖分&dfs序

摘要:终于又遇到SAM的题了好好玩,而且就这道题让我弄清楚了广义SAM和Trie上SAM的区别其实两者是没有多少区别的,不过Trie上SAM可以更快关于Trie上SAM,是用bfs的方法来构建的,相比起广义SAM用dfs建少了一个深度之和的部分但是如果原题给的就是Trie那... 阅读全文
posted @ 2018-04-20 21:18 扩展的灰(Extended_Ash) 阅读(174) 评论(0) 推荐(0)
摘要:题目看这里一个简单的计数问题我们先考虑O(n^2)的做法对每个点dfs一次,求出d[i]表示i的深度,那么对答案贡献就是Σ2^(n-d[i])那么我们考虑用数据结构动态维护这个d[i],显然可以用线段树来维护dfs序做到复杂度O(n lg n) 效率很高rank8看了... 阅读全文
posted @ 2018-02-22 21:51 扩展的灰(Extended_Ash) 阅读(180) 评论(0) 推荐(0)
摘要:又是被水题坑了。。。一直想不出来看题解说要什么主席树,于是开始打离线算法结果打到一半发现要强制在线。。No!!!发现直接AC自动机似乎可做?树剖之后在AC自动机上跑的时候判断一下不就好了吗!连线段树都不要让后快乐切掉,速度还可以(废话,人家N^2暴力都跑得飞快)#pr... 阅读全文
posted @ 2017-12-30 21:33 扩展的灰(Extended_Ash) 阅读(160) 评论(0) 推荐(0)
摘要:非常好的树剖模板题了,直接C颗线段树上去就好了,动态开点一次写对~#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N 100010#define m... 阅读全文
posted @ 2017-12-13 20:29 扩展的灰(Extended_Ash) 阅读(230) 评论(0) 推荐(0)
摘要:Pulumi生活在P城的角落,而他的朋友们gjdy,oyski,tutuwai等等生活在P城的靠中心位置。P城很大,但它拥有优秀的城市结构,同时P城重视文化教育的发展,P城共有n个学校,校与校之间共建立了n-1条交通线路,且两所学校之间存在唯一的连通路径。P城常常举行各种类型的评比活动,为了节约资金... 阅读全文
posted @ 2017-11-16 19:32 扩展的灰(Extended_Ash) 阅读(105) 评论(0) 推荐(0)
摘要:Pulumi生活在P城的角落,而他的朋友们gjdy,oyski,tutuwai等等生活在P城的靠中心位置。P城很大,但它拥有优秀的城市结构,同时P城重视文化教育的发展,P城共有n个学校,校与校之间共建立了n-1条交通线路,且两所学校之间存在唯一的连通路径。P城常常举行... 阅读全文
posted @ 2017-11-08 15:57 扩展的灰(Extended_Ash) 阅读(148) 评论(0) 推荐(0)
摘要:好长一道题结果发现就是个叫你求最大次大的东西我们跑出dfs序和主席树后,开始分类讨论1.只有一个节点2.有不止两个最大值,且在此子树外有l[i]不为0的节点3.只有一个最大值,而次大值+子树外l[i]的最大值不等于最大值4.只有一个最大值,而次大值+子树外l[i]的最... 阅读全文
posted @ 2017-11-07 15:48 扩展的灰(Extended_Ash) 阅读(129) 评论(0) 推荐(0)
摘要:好长一道题结果发现就是个叫你求最大次大的东西我们跑出dfs序和主席树后,开始分类讨论1.只有一个节点2.有不止两个最大值,且在此子树外有l[i]不为0的节点3.只有一个最大值,而次大值+子树外l[i]的最大值不等于最大值4.只有一个最大值,而次大值+子树外l[i]的最... 阅读全文
posted @ 2017-11-07 15:48 扩展的灰(Extended_Ash) 阅读(228) 评论(0) 推荐(0)
摘要:因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市 被加派了k名士兵时。城市i的所有子城市需要被加派k+1名士兵。这些子城市的所有子城市需要被加派k+2名士兵。以此类推。当然,加派士兵的同时,国王也需要不断了解当前的情况。于是他随时可能询问以... 阅读全文
posted @ 2017-11-03 17:17 扩展的灰(Extended_Ash) 阅读(198) 评论(0) 推荐(0)
摘要:因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市 被加派了k名士兵时。城市i的所有子城市需要被加派k+1名士兵。这些子城市的所有子城市需要被加派k+2名士兵。以此类推。当然,加派士兵的同时,国王也需要不断了解当前的情况。于是他随时可能询问以... 阅读全文
posted @ 2017-11-03 17:17 扩展的灰(Extended_Ash) 阅读(135) 评论(0) 推荐(0)
摘要:这个题一看就是树剖的模型但是有一些问题,比如权值的乘机太大了,可能会爆long long一种解决的方法:我们考虑到,v=10^18 我们可以直接将其变为一个特殊的值(例如-1)表示“足够大”,这种情况直接输出0若不够,我们有一个结论: [[a/b]/c] = [a/b... 阅读全文
posted @ 2017-10-30 22:06 扩展的灰(Extended_Ash) 阅读(114) 评论(0) 推荐(0)
摘要:这个题一看就是树剖的模型但是有一些问题,比如权值的乘机太大了,可能会爆long long一种解决的方法:我们考虑到,v=10^18 我们可以直接将其变为一个特殊的值(例如-1)表示“足够大”,这种情况直接输出0若不够,我们有一个结论: [[a/b]/c] = [a/b... 阅读全文
posted @ 2017-10-30 22:06 扩展的灰(Extended_Ash) 阅读(90) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(149) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(211) 评论(0) 推荐(0)
摘要:子树的问题都是dfs序的工作啦,加上个线段树就ok了#include#define mid (l+r>>1)struct Edge{ int v,nt; } G[200010];int h[100010],cnt=0,clk=0,l[100010],r[100010]... 阅读全文
posted @ 2017-10-07 22:02 扩展的灰(Extended_Ash) 阅读(90) 评论(0) 推荐(0)
摘要:子树的问题都是dfs序的工作啦,加上个线段树就ok了#include#define mid (l+r>>1)struct Edge{ int v,nt; } G[200010];int h[100010],cnt=0,clk=0,l[100010],r[100010]... 阅读全文
posted @ 2017-10-07 22:02 扩展的灰(Extended_Ash) 阅读(114) 评论(0) 推荐(0)
摘要:看了一眼就开始想分快树套树莫队了吧?233333333但是这道题有一个奇怪的条件!颜色不超过30种!是不是一个状压就完了?23333333333333333333#include#define ls x>1)int s[400040],t[400010],n,m,c;... 阅读全文
posted @ 2017-10-07 21:55 扩展的灰(Extended_Ash) 阅读(149) 评论(0) 推荐(0)
摘要:看了一眼就开始想分快树套树莫队了吧?233333333但是这道题有一个奇怪的条件!颜色不超过30种!是不是一个状压就完了?23333333333333333333#include#define ls x>1)int s[400040],t[400010],n,m,c;... 阅读全文
posted @ 2017-10-07 21:55 扩展的灰(Extended_Ash) 阅读(156) 评论(0) 推荐(0)
摘要:题意:给一棵树,每次删边或者询问连通性,强制在线其实这题做法很多嘛,简单说一下一眼看过去肯定是LCT啦,于是马上开始打打到一半发现似乎不用LCT?好像树剖也可以嘛结果发现树剖也不用,直接一个dfs序就可以了嘛用线段树维护每个点能到达的最远的祖先,删边的时候将整个区间覆... 阅读全文
posted @ 2017-10-03 19:38 扩展的灰(Extended_Ash) 阅读(106) 评论(0) 推荐(0)
摘要:题意:给一棵树,每次删边或者询问连通性,强制在线其实这题做法很多嘛,简单说一下一眼看过去肯定是LCT啦,于是马上开始打打到一半发现似乎不用LCT?好像树剖也可以嘛结果发现树剖也不用,直接一个dfs序就可以了嘛用线段树维护每个点能到达的最远的祖先,删边的时候将整个区间覆... 阅读全文
posted @ 2017-10-03 19:38 扩展的灰(Extended_Ash) 阅读(142) 评论(0) 推荐(0)