数据结构
谭xl老司的炮兵
这个作者很懒,什么都没留下…
展开
-
点分治。。。。。
点分治,就是在树上分治,讲得很高大上。。。。。。。。实际上就是findroot,answer两个操作;根据分治的处理方法:分成若干个子问题因此,在每次dfs都要查找root;据说这样就是优化。。。。原创 2017-02-07 11:53:47 · 230 阅读 · 0 评论 -
树链剖分
定义: siz[]数组,用来保存以x为根的子树节点个数top[]数组,用来保存当前节点的所在链的顶端节点hson[]数组,用来保存重儿子drep[]数组,用来保存当前节点的深度fa[]数组,用来保存当前节点的父亲id[]数组,用来保存树中每个节点剖分后的新编号两遍dfs求出以上信息,连边成重链,按照新的编号建树(有的题目这一步可省略);剩下全是线段树的操作查询或修改原创 2017-02-10 08:38:05 · 277 阅读 · 0 评论 -
Dark的项链(树链剖分)
P2272 - Dark的锁链Description无向图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark有N – 1条主要边,并且Dark的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark还有M条附加边。你的任务是把Dark斩为不连通的两部分。一开始Dark的附加边都处于无敌状态,你只能选择一条主要边切断。一旦你切断了一条主要原创 2017-02-10 14:11:47 · 318 阅读 · 0 评论 -
关于Trie KMP AC自动机
个人认为trie,KMP,AC自动机是思想非常明确的,AC自动机的性质是与KMP的思想类似的(失配后跳转)而KMP是线性的,AC自动机是在tire树上跑KMP,为方便那些不会用指针的小朋友(我也不会。。。。)我的tire树,kmp的next,AC自动机的fail全是用数组实现的!!!!(还有谁???!!!)所以上板子1,KMPvoid make() {//建立next数组原创 2017-01-20 09:20:33 · 461 阅读 · 2 评论 -
网络流初步之最大流(增广路算法)
网络流是一个联通图;网络流有如下三个性质:1.一条边上容量恒大于流量。2.斜对称性,f(u,v)=-f(v,u);3.对于非源点和汇点有sigema(i,j){i,j属于E}=0;为了更方便算法的实现,一般根据原网络定义一个残量网络。其中r(u,v)为残量网络的容量。r(u,v) = c(u,v) – f(u,v)*反向边也有r!!!!增广路是指一条源点到汇点的原创 2017-02-10 22:51:37 · 697 阅读 · 0 评论 -
NOI全国赛(2001)--食物链
今天写了道并查集的题,看来并查集的题刷少了,,,,,用法好神奇啊!!!开三倍并查集用i表示自己,i+n存天敌,i+2*n存可以克制de,再逻辑判断一下即可。所以,要意识到并查集的分类处理可以开不同倍数的空间来适应题目要求。1074 食物链 2001年NOI全国竞赛 时间限制: 3 s 空间限制: 64000 KB原创 2017-01-25 16:28:03 · 315 阅读 · 0 评论