
动态树
文章平均质量分 51
ws_yzy
一如OI情似海
展开
-
3282: Tree|动态树
动态树裸题 练习模板 强大的缩行技术+异常sb的代码,LCT才99行 QAQ #include #include #include #include #include #include #include #include #include #include #define T 303333 using namespace std; int sc() { int i=0; char c=ge原创 2016-01-08 08:41:32 · 551 阅读 · 1 评论 -
[NOI2014]魔法森林|动态树
此题spfa就能A 据说当年sd就有一位神犇用spfa在赛场上强势A了这道题 然而正解貌似是动态树维护生成树 先按a把边排序从小到大枚举插入新边 如果构成环那么把环上的最大的b值的边删掉 ------------------------------------------------------ 代码异常sb原创 2016-01-08 07:20:25 · 708 阅读 · 0 评论 -
3626: [LNOI2014]LCA|动态树
这真是一道神题!! 显然需要离线来解决,再就是用到了差分的思想 以下是PoPoQQQ大爷复制gconeice的题解,说得非常详细,就不再赘述了 显然,暴力求解的复杂度是无法承受的。 考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把 z原创 2016-03-08 08:24:09 · 776 阅读 · 0 评论 -
BZOJ 2631: tree|动态树
好虚.... 这题的做法显然是LCT,然后就是裸的操作,对于这个乘法和加法,我们怎么做标记呢? 就是将乘法和加法合并起来算做一个标记,mulmul数组和plusplus数组两个数组算做一个标记,设权值为xx那么标记的意思就是把所有子节点的的xx都变为:mul∗x+plusmul*x+plus这样只要多维护一个sizesize数组就可以维护,下传标记也很好写#include<cstdio> #原创 2016-02-25 08:08:57 · 667 阅读 · 0 评论 -
BZOJ 3732: Network|动态树
看了po姐的blog..算了我也LCT水一发.. 正常的做法 lct就是维护最小生成树,然后维护链上的最大值#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<queue> #include<set> #include<map> #include<vector>原创 2016-02-25 09:31:10 · 496 阅读 · 0 评论 -
BZOJ 1180: [CROATIAN2009]OTOCI|动态树
做了几道LCT的题后发现终于会打裸题啦QAQ#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<queue> #include<set> #include<map> #include<vector> #include<algorithm> #include<io原创 2016-02-25 14:25:05 · 669 阅读 · 0 评论 -
2959: 长跑|LCT+并查集
慎入…此人代码自带5倍常数。。 静态的话就是随便搞出一棵生成树来,然后把环缩起来,询问的答案就是路径上的权值和 动态的就需要LCT来维护生成树,每遇到连起边来就形成环的情况时,就把这个环缩成一个点 动态的查询一条链上的权值和。 为什么我的代码的常数这么大…….后几个点在本地跑5s#include<algorithm> #include<iostream> #include<cstdlib>原创 2016-04-21 10:00:49 · 980 阅读 · 0 评论