随笔分类 -  树——link-cut-tree

摘要:Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u 阅读全文
posted @ 2017-10-03 08:09 友人Aqwq 阅读(179) 评论(0) 推荐(0)
摘要:题目描述 Description 水果姐第二天心情也很不错,又来逛水果街。 突然,cgh又出现了。cgh施展了魔法,水果街变成了树结构(店与店之间只有一条唯一的路径)。 同样还是n家水果店,编号为1~n,每家店能买水果也能卖水果,并且同一家店卖与买的价格一样。 cgh给出m个问题,每个问题要求水果姐 阅读全文
posted @ 2017-08-30 19:12 友人Aqwq 阅读(202) 评论(0) 推荐(0)
摘要:题目传送门 这 算是link-cut-tree裸题啊 不过以前好像没有写过单点修改.............. #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace st 阅读全文
posted @ 2017-06-27 14:06 友人Aqwq 阅读(141) 评论(0) 推荐(0)
摘要:题目传送门 这道题看了做了个神转换.....推荐个博客给各位大爷看看吧神犇传送门 代码敲了半天....题目也读了半天 线段树维护的东西很容易和lct混在一起 调了调能过也是很开心啊 运气比较好吧233 #include<cstdio> #include<cstring> #include<algor 阅读全文
posted @ 2017-06-23 23:46 友人Aqwq 阅读(181) 评论(0) 推荐(0)
摘要:题目传送门 这道题啊 调了一个晚上 因为写的是一个有根树和n个基环的写法 所以写得很奇怪..... 最后发现单独处理树的时候不能随意改变S(就是原来的根)不然size会出错.... #include<cstdio> #include<cstring> #include<algorithm> #inc 阅读全文
posted @ 2017-06-21 21:52 友人Aqwq 阅读(165) 评论(0) 推荐(0)
摘要:先上题目 bzoj3669: [Noi2014]魔法森林 这道题首先每一条边都有一个a,b 我们按a从小到大排序 每次将一条路劲入队 当然这道题权在边上 所以我们将边化为点去连接他的两个端点 当然某两个点我用的是并查集维护 其实也可以在树上直接查询 但是这样比较方便 同时我们维护某个点极其子树的最大 阅读全文
posted @ 2017-06-13 22:00 友人Aqwq 阅读(159) 评论(0) 推荐(0)
摘要:这道题需要注意的就是标记的传递 规定先传乘法标记再传加法标记就好了 #include<cstdio> #include<cstring> #include<algorithm> #define LL unsigned int using namespace std; const int M=1000 阅读全文
posted @ 2017-06-13 18:41 友人Aqwq 阅读(124) 评论(0) 推荐(0)
摘要:这道题就是维护一个有根的lct 一开始建树全部建虚边 求多少次弹出就是求他到根的距离(根为n+1) 这里有个小技巧 将n+1作为根而没有虚根操作起来会比较方便 #include<cstdio> #include<cstring> #include<algorithm> using namespace 阅读全文
posted @ 2017-06-12 14:20 友人Aqwq 阅读(170) 评论(0) 推荐(0)
摘要:这道题是裸的lct(link-cut-tree) 觉得自己讲的不是很好 推荐个博客吧 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int M=10007; int read(){ 阅读全文
posted @ 2017-06-12 13:14 友人Aqwq 阅读(181) 评论(0) 推荐(0)