LCT
CR1SceNT
这个作者很懒,什么都没留下…
展开
-
hdu4010:Query on The Trees
题意: 给出一颗树,有4种操作: 1、如果x和y不在同一棵树上则在xy连边 2、如果x和y在同一棵树上并且x!=y则把x换为树根并把y和y的父亲分离 3、如果x和y在同一棵树上则x到y的路径上所有的点权值+w 4、如果x和y在同一棵树上则输出x到y路径上的最大值 第一道LCT(学了一整天啊。。太蠢了!) 推荐两份资料: 1.杨哲集训队作业《QTREE解法的一些研究》 2. l原创 2017-01-11 19:13:15 · 390 阅读 · 0 评论 -
BZOJ1180: [CROATIAN2009]OTOCI
题目链接LCT裸题。【代码】 #include <cstdio> #include <iostream> #include <queue> #include <vector> #include <algorithm> #include <cstring> #include <cmath> #define N 30005 #define INF 1e9 using namespace std; typ原创 2017-01-12 18:24:59 · 272 阅读 · 0 评论 -
BZOJ2157: 旅游
题目链接树链剖分的模板题。拿来练一下LCT。。。 pushup中只有当k>n(当前点为边建成的点)时,才能用a[k]更新mx[k]和mn[k]。因为前n个点是没有点权的,统计时只统计边权最大值和最小值,可正可负,所以不能用该点更新。求和则没有影响。【代码】 #include <cstdio> #include <iostream> #include <queue> #include <vector原创 2017-01-12 18:11:08 · 302 阅读 · 0 评论 -
BZOJ3282: Tree
题目链接LCT裸题了。题目怎么说就怎么打。【代码】 #include <cstdio> #include <iostream> #include <queue> #include <vector> #include <algorithm> #include <cstring> #include <cmath> #define N 300005 #define INF 1e9 using namesp原创 2017-01-12 16:26:40 · 213 阅读 · 0 评论 -
BZOJ3669: [Noi2014]魔法森林
题目链接学习了一下黄学长的做法:http://hzwer.com/3845.html 边集按a值从小到大排序,依次加边,若构成环则删去环上最大边。 LCT维护的是点,由于是动态,所以不方便像树链剖分一样直接将边转到点上,一个很好用的技巧就是将边建新点,然后就好做了。只有边建成的点有权值,权值为b[i],LCT维护最大值的位置。当1和n连通时更新答案。(还是比较好实现的吧。。打完莫名其妙就胡对了)原创 2017-01-12 11:14:38 · 230 阅读 · 0 评论 -
BZOJ2631: tree
题目链接int会炸,long long 会T。。很好。。很好。 注意标记的下传。【代码】#include <cstdio> #include <iostream> #include <queue> #include <vector> #include <algorithm> #include <cstring> #include <cmath> #include <stack> #define N原创 2017-01-12 00:09:25 · 421 阅读 · 0 评论 -
BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊
题目链接LCT维护子树大小就可以了。 每个点i跳到的位置为min(x+i,n+1)。 改变的时候,先和原先的a[x]断开,将a[x]至为当前更改后可跳到的位置,并和x连接。(a[x]没更新。。蠢得没法)查询答案就是点x到n+1之间点的个数-1。因为最后跳到n+1后就没有了,很好想。【代码】#include <cstdio> #include <iostream> #include <queue>原创 2017-01-11 22:13:08 · 195 阅读 · 0 评论 -
BZOJ2049: [Sdoi2008]Cave 洞穴勘测
题目链接这才是真的。。LCT入门题把。。 Connect就是link操作,Destroy就是cut操作,Query就是查询是否在同一个树中。【代码】#include <cstdio> #include <iostream> #include <queue> #include <vector> #include <algorithm> #include <cstring> #include <cma原创 2017-01-11 21:34:16 · 219 阅读 · 0 评论 -
BZOJ1036: [ZJOI2008]树的统计Count
题目链接单点修改,区间最大值,区间和。 树链剖分裸的不能再裸了。#include <cstdio> #include <iostream> #include <queue> #include <vector> #include <algorithm> #include <cstring> #include <cmath> #include <stack> #define N 30005 #def原创 2017-01-08 23:29:32 · 278 阅读 · 0 评论 -
BZOJ2594: [Wc2006]水管局长数据加强版
题目链接既然有边的删除操作。又询问路径最小值,就可以用LCT。 正着直接做的话,成环直接割掉环上最大边显然不可取。因为后面还有删除操作,当前删去的边可能会造成影响。(:废话吧。。但还是说一下比较好。。) 所以将边离线下来,删边反过来就是倒序加边。先将原图中,后面不会删除的边做最小生成树。然后倒序加边,成环删去环上最大边,LCT维护区间最大值的位置。果然是人丑自带常数大呢。。【代码】 #inclu原创 2017-01-12 16:00:31 · 255 阅读 · 0 评论