题解:正解是LCT+SAM。
但是出题人太神以至于不屑于卡你,所以只写个SAM然后暴力维护就好了。
这样虽然很不科学,但是可以比正解快三倍。
我是太困了吧,写挂了调了好久(发呆了好久然后秒调过,或者说半眯着眼睛睡了一会)
代码:
#include
#include
#include
#include
#define N 1601000
#define T 26
#...
分类:
其他好文 时间:
2015-01-20 12:03:42
阅读次数:
200
LCT 喜闻乐见的Link-Cut-Tree…… srO zyf http://www.cnblogs.com/zyfzyf/p/4149109.html 目测我是第222个?………………不要在意这些细节…… 和以前写的splay还是有些区别呢…… 比如splay中Push_down...
分类:
其他好文 时间:
2015-01-10 01:01:32
阅读次数:
244
题目大意:给定一个初始字符串,提供两种操作:
1.在这个字符串的后面连接一个字符串
2.询问某个字符串在当前串中出现了多少次
SAM大叔的自动机~~
对于每个询问就是在后缀自动机上找到该子串所对应的节点 找不到返回0
然后这个节点的Right集合的大小就是这个子串的出现次数
每次Extend的时候将新建节点沿着parent指针到根的路径上所有点的Right集合大小+1即可
分裂节点的...
分类:
其他好文 时间:
2014-12-12 16:46:33
阅读次数:
236
题目大意:N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。
思路:看到了wulala的题解,这里就直接粘过来了。
葱娘说这是一个很巧妙的题。。
有一个比较猎奇的做法:首先把边依次加到图中,若当前这条边与图中的边形成了环,那么把这个环中最早加进来的边弹出去
并将每条边把哪条边弹了出去记录下来:ntr[i] = j,特别地,要是没有弹出边,ntr[i] =...
分类:
其他好文 时间:
2014-12-03 12:29:52
阅读次数:
273
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3669
记得四个月之前的NOI同步赛,我还只会玩脚丫子。。。。
记得我当时看到这个题整个人就吓傻了,完全不知道怎么做,然后NOI同步赛就这样爆零了。。。
如今我学了LCT这个神器,再看这个题,感觉不再那么难了。
其实这个题的标准解法是SPFA,改得完全认不出来的SPFA。
...
分类:
其他好文 时间:
2014-12-02 20:52:00
阅读次数:
253
题目大意:给出一些初始相互分离的岛,有三个操作,1.分析两点是否联通,如果不连通,在之间连一条边。2.更改一个点的权值。3.询问两点之间路径上所有点的点权和。
思路:基本算是LCT的模板题了吧,好久没写了,基本都要忘了,这是照别人代码写的。。。
CODE:
#include
#include
#include
#include
#define MAX 30010
...
分类:
其他好文 时间:
2014-11-25 14:35:20
阅读次数:
178
题目大意:给定一个无向图,多次删除某条边,多次查询两点之间路径上边权最大值的最小值
Link-Cut-Tree维护动态最小生成树
首先倒着做 将所有被删除的边标记(找边我用的排序+二分) 将没标记的边跑一遍Kruskal 求出最小生成树 然后每次加边和查询正常维护即可
LInk-Cut-Tree一气呵成写完,Kruskal尼玛写挂了…… 居然忘记把并查集连边 这我也是醉了
顺便吐槽一下题干...
分类:
其他好文 时间:
2014-11-21 16:24:32
阅读次数:
167
警告:此题不可以使用cout进行输出,只能用printf,否则RE!亲测!!
题目大意:给定一棵树,每个点有一个点权,提供四种操作:
1.删除两点之间的连边 不存在边则无视
2.在两点之前连接一条边 两点已经联通则无视
3.在两点之间的路径上所有点的点权加上一个数 两点不连通则无视
4.询问两点之间路径上任选两点路径上的点权和的期望值
前三个操作都很基础 但是第四个东西……这啥玩应这是...
分类:
其他好文 时间:
2014-11-05 19:53:09
阅读次数:
158
题目大意:给定n个形如xi=ki*x_pi+bi mod p的同余方程组 支持修改操作和求解操作
确实好题 感谢此题作者 顺便吐槽一下作者的Splay不加空节点太蛋疼了0.0
将每个点i的父亲设为pi 我们将会得到一座基环树林 将环上的一条边拆掉,在边的起始节点新开个域special_father记录这条边(P.S:好浪费 但是没办法)
于是我们得到了一座森林 显然可以用LCT来维护 每个节...
分类:
其他好文 时间:
2014-10-25 09:20:13
阅读次数:
284
题目大意:给定一个n个点m条边的无向连通图,k次询问两点之间所有路径中最长边的最小值
LCT的裸题!首先维护一个动态的最小生成树,然后每次加入边时删除两点间路径上权值最大的边!最后询问时直接求x到y链上的最大权值即可!水爆了!!
。。。好吧开玩笑的 真正的题解见http://blog.csdn.net/popoqqq/article/details/39755703
我只是闲得无聊水一发LC...
分类:
Web程序 时间:
2014-10-09 16:48:58
阅读次数:
262