LCT
lpf_as_an_oier
这个作者很懒,什么都没留下…
展开
-
2594: [Wc2006]水管局长数据加强版
这题尼玛太坑了,求放开时限。用LCT判联通会T,求最小生成树的时候没有事先排序然后BREAK会T。做法大概就是把删除转换为加边,一开始先把要删除的全删了然后倒着做。删边转为加边废话不说代码如下#include#include#include#include#includeusing namespace std;const int MAXX=100010;int fa[原创 2016-01-15 23:37:47 · 616 阅读 · 0 评论 -
【NOI2014】魔法森林
就让我给这题详细地写一份解题报告吧。首先观察前3个点,直接爆搜不要怂50分的做法N继续观察11到14个点,A权值很小,肯定可以骗分,我想到的做法是枚举A的权值,然后加边,这样最多跑30遍SPFA,3S的时限是卡不掉的。最后我们讲正解。听说这题SPFA可以过(数据太良心),观察到我们排序后每次加B权值,我们要维护1到N的B权值的最大值最小,那果断最小生成树了,而A权值已经确定,那我们原创 2016-01-08 23:08:26 · 1335 阅读 · 0 评论 -
BZOJ 2631 TREE
这题是LCT的模板题,其余没什么好讲的,SUM为路径的权值和,A为点权,这题我在标记上耗了很久,我们记录CHEN 和JIA,假定Y和Z分别作为加和乘的标记,那么CHEN*=Z,JIA=JIA*Z+Y,注意这时候SUM为SUM*Z+SIZE*Y,还有这题用UNSIGNED INT 会快很多,我从30000ms跑到了16800ms......废话不说附上代码:原创 2016-01-01 15:42:03 · 344 阅读 · 0 评论 -
BZOJ3514
好久没有写动态树了,都快忘了,今天来复习一下题意:给定N个点M条边的图,询问选第L到R条边时该图的联通块个数。我就直接讲做法了:以每条边的编号为每条边的边权,然后用LCT维护最大生成树,对于当前的一条边x->y,如果x和y不联通,那么把x和y加入生成树,如果x和y联通,那么在x到y的路径上选取一条权值最小的边,砍了,然后连接x和y,此时记录每条边弹出的边的编号(记为num),如果不连通就为原创 2016-06-30 16:23:37 · 643 阅读 · 0 评论