BZOJ2843 极地旅行社 LCT】的更多相关文章

欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2843 题意概括 有n座岛 每座岛上的企鹅数量虽然会有所改变,但是始终在[0, 1000]之间.你的程序需要处理以下三种命令: 1."bridge A B"——在A与B之间建立一座大桥(A与B是不同的岛屿).由于经费限制,这项命令被接受,当且仅当A与B不联通.若这项命令被接受,你的程序需要输出"yes",之后会建造这座大桥.否则,你的程序需要输"no&quo…
bzoj2843极地旅行社 题意: 一些点,每个点有一个权值.有三种操作:点与点连边,单点修改权值,求两点之间路径上点的权值和(需要判输入是否合法) 题解: 以前一直想不通为什么神犇们的模板中LCT在link和cut后都要在根节点打翻转标记.现在明白了,因为只有这样才能保持深度的正确性,以前没有因此炸过是因为我以前都是把LCT拿来当链剖用的,根本不用link和cut~~这道题是LCT模板题也没什么好说的.不过CCZ大爷有更快的做法,就是离线读入所有连边操作,然后建一棵树用链剖,判断输入是否合法就…
双倍经验双倍的幸福... 所以另一道是300大洋的世界T_T...虽然题目是一样的,不过2843数据范围小了一点... 都是lct基本操作 #include<cstdio> #include<iostream> #include<math.h> using namespace std; ; struct zs{ ],fa,sum,val; bool rev; }tree[maxn]; int i,j,x,y,n,m; int stack[maxn]; ]; inline…
2843: 极地旅行社 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 90  Solved: 56[Submit][Status] Description 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间. Mirko的旅行社遭受一次重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来运…
LCT.. ------------------------------------------------------------------------ #include<cstdio> #include<algorithm> #include<cstring> #include<iostream>   #define rep( i , n ) for( int i = 0 ; i < n ; ++i ) #define clr( x , c )…
题目描述 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅行社遭受一次重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来运载游客.Mirko希望开发一个电脑程序来管理这些大桥的建造过程,以免有不可预料的错误发生.这些冰岛从1到N标号.一开始时这些岛屿没有大桥连接,并且所有岛上的帝企鹅数量都是知道的.每座岛上的企鹅数量虽…
题目描述 给出n个结点以及每个点初始时对应的权值wi.起始时点与点之间没有连边.有3类操作:  1.bridge A B:询问结点A与结点B是否连通. 如果是则输出“no”.否则输出“yes”,并且在结点A和结点B之间连一条无向边.  2.penguins A X:将结点A对应的权值wA修改为X.  3.excursion A B:如果结点A和结点B不连通,则输出“impossible”. 否则输出结点A到结点B的路径上的点对应的权值的和. 给出q个操作,要求在线处理所有操作. 数据范围:1<=…
传送门 模板. ——代码 #include <cstdio> #include <iostream> #define N 300001 #define get(x) (son[f[x]][1] == (x)) #define swap(x, y) ((x) ^= (y) ^= (x) ^= (y)) #define isroot(x) (son[f[x]][0] ^ (x) && son[f[x]][1] ^ (x)) int n, m; ], rev[N], f[…
竟然卡了我....忘记在push_down先下传父亲的信息了....还有splay里for():卡了我10min,但是双倍经验还是挺爽的,什么都不用改. 感觉做的全是模板题,太水啦,不能这么水了... 不过模板都敲不对,啥也做不好!!! #include <iostream> #include <cstdio> #define N 300030 using namespace std; int n,m; struct node { node *fa,*ch[]; int data,…
1.题目大意:动态树问题,点修改,链查询.另外说明双倍经验题=bzoj1180 2.分析:lct模板题,练手的 #include <stack> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; namespace LinkCutTree{ struct Node{ Node *ch[2], *fa;…
http://www.lydsy.com/JudgeOnline/problem.php?id=2843 https://blog.csdn.net/clove_unique/article/details/50992341 和之前那道题lct求两点距离用lca不同,这道题因为给的边的两个端点是没有顺序的(没法直接按照给的点直接将某个点连到树上),所以bridge需要区间翻转的操作,因为splay维护的是链,所以区间翻转相当于将叶子变成了根,根变成叶子(链翻转过来),然后再把此时的根(x)连到y…
题目大意 有n座小岛,当中每一个岛都有若干帝企鹅. 一開始岛与岛之间互不相连.有m个操作.各自是在两个岛之间修一座双向桥,若两岛已连通则不修并输出no,若不连通就输出yes并修建.改动一个岛上帝企鹅的数量:询问从岛A到岛B可看到多少帝企鹅,若到不了输出impossible. 题解 继续试水LCT.LCT维护每一个点自身的企鹅数以及其在Splay下的子树的企鹅数的总和. 修桥操作要在LCT中询问是否有同样的根,没有则添边.改动时把要被改动的点弄到树根去,直接改动就可以.查询时要先推断是否为同一结点…
[BZOJ2843]极地旅行社(Link-Cut Tree) 题面 BZOJ 题解 \(LCT\)模板题呀 没什么好说的了.. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map> #includ…
[BZOJ2843]极地旅行社 Description 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅行社遭受一次重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来运载游客.Mirko希望开发一个电脑程序来管理这些大桥的建造过程,以免有不可预料的错误发生.这些冰岛从1到N标号.一开始时这些 岛屿没有大桥连接,并且所有…
2843: 极地旅行社 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 323  Solved: 218[Submit][Status][Discuss] Description 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间. Mirko的旅行社遭受一次重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造…
P4312 [COCI 2009] OTOCI / 极地旅行社 题目描述 不久之前,Mirko建立了一个旅行社,名叫"极地之梦".这家旅行社在北极附近购买了N座冰岛,并且提供观光服务. 当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅行社遭受一次重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来运载游客. Mirko希望开发一个电脑程序来管理这些大桥的建造过程,以免有不可预料的错误发生.这些冰岛从1到N标号.一开始时…
原题地址:P4312 [COCI 2009] OTOCI / 极地旅行社/SP4155 OTOCI - OTOCI lct入门难度的题,十分弱智(小蒟蒻说lct是什么,能吃吗?) bridge操作判联通,用find,不同的话link一下 penguins修改点权,把这个点旋转到树根暴力修改并pushup excursion先判联通,如果联通输出点权之和 操作就是这样,简单有点像P2147 [SDOI2008]洞穴勘测 代码: #pragma GCC optimize("O3") #in…
不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服 务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅行社遭受一次 重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来运载游客.Mirko希望 开发一个电脑程序来管理这些大桥的建造过程,以免有不可预料的错误发生.这些冰岛从1到N标号.一开始时这些 岛屿没有大桥连接,并且所有岛上的帝企鹅数量都是知道的.每座岛上的企鹅数量虽然…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2843 [题意] 给定一个森林,要求提供连边,修改点值,查询路径和的操作. [思路] LCT维护sum 对于一棵树LCT用splay维护该树的若干重路径,u->fa有三种:一种满足(u->fa->ch[0]==u||u->fa->ch[1]==u),即splay辅助树中的父亲:一种不满足上述要求,即辅助树(不同重路径)之间的连接:另一种u->fa==null,…
http://www.lydsy.com/JudgeOnline/problem.php?id=1180 今天状态怎么这么不好....................................... 又是调了好久........................................... 我竟然忘记更改值那里要先splay后再更改,而且还要pushup先!!!!! QAQ 太弱了.. 记住!!!更改信息一定要先变成了根再修改,而且还要pushup! (蒟蒻问了下神犇,总算弄懂了:…
Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1077  Solved: 645[Submit][Status][Discuss] Description 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服 务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅行社遭受一次 重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来…
题目描述 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务. 当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅行社遭受一次重大打击,以至于观光游轮已经不划算了.旅行社将在冰岛之间建造大桥,并用观光巴士来运载游客. Mirko希望开发一个电脑程序来管理这些大桥的建造过程,以免有不可预料的错误发生.这些冰岛从1到N标号.一开始时这些岛屿没有大桥连接,并且所有岛上的帝企鹅数量都是知道的.每座岛上的企鹅数…
复习一下$LinkCutTree$的模板. #include<cstdio> #include<cstring> #include<algorithm> #define N 30003 #define read(x) x=getint() using namespace std; struct node *null; struct node { node *ch[2], *fa; int d, sum; short rev; bool pl() {return fa-&…
思路 LCT维护和的板子 注意findroot的时候要先access一下,修改点权之前要先splay到根 代码 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; struct Node{ int fa,son[2],sum,val,inv; }SPT[600000]; int n,q; bool isrl(int o){ return o==SPT[SPT[o].…
题目大意:有$n(n\leqslant3\times10^4)$个点,每个点有点权,$m(m\leqslant3\times10^5)$个操作,操作分三种: $bridge\;x\;y:$询问节点$x$与节点$y$是否连通,若不连通则连一条边 $penguins\;x\;y:$把节点$x$点权改为$y$ $excursion\;x\;y:$询问$x->y$路径上点权和 题解:$LCT$直接维护即可 卡点:无 C++ Code: #include <algorithm> #include…
emmm-标题卡着长度上限- LCT板题-(ε=ε=ε=┏(゜ロ゜;)┛) CODE #include <cctype> #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; char cb[1<<15],*cs=cb,*ct=cb; #define ge…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1180 本题和BZOJ2843一样. BZOJ2843 极地旅行社 LCT 题意概括 有n座岛 每座岛上的企鹅数量虽然会有所改变,但是始终在[0, 1000]之间.你的程序需要处理以下三种命令: 1."bridge A B"——在A与B之间建立一座大桥(A与B是不同的岛屿).由于经费限制,这项命令被接受,当且仅当A与B不联通.若这项命令被接受,你的程序需要输出"yes"…
部分摘抄于 FlashHu candy99 所以文章篇幅较长 请有足够的耐心(不是 其实不用学好splay再学LCT的-/kk (至少现在我平衡树靠fhq) 如果学splay的话- 也许我菜吧-LCT靠背板子 pushup靠理解-没救了/kk 简单讲讲LCT 至于树链剖分 建议在LCT之前学(? 反正我blog里也有 一[理论知识] -Link-Cut-Tree(简称LCT)是解决动态树类问题一种数据结构 -Preferred Child:重儿子,重儿子与父亲节点在同一棵Splay中,一个节点最…
说好的专题... lct的一些概念看论文 杨哲<QTREE解法的一些研究> 简单易懂. 首先不要把lct想象得很难,其实很水的.lct就是很多splay树维护的树... lct的access操作就是在原树中拓展一条点到根的类二叉树出来(用splay来维护) 这里,splay树是按深度作为关键字的,当然,在无向图中(无环)可以任意指定一个点为根,这点要切记(因为在这里操作时,有些操作需要换根,所以一定要理解) link操作就是将点作为这颗类二叉树的根,然后合并 cut操作就是将点作为这颗二叉树的…
我终于理解了 \(LCT\)!!!想不到小蒟蒻有一天理解了!!! 1.[模板]Link Cut Tree 存个板子 #include <bits/stdc++.h> using namespace std; const int maxn=300000+10; int n,m,a[maxn],ch[maxn][2],fa[maxn],val[maxn],sta[maxn],top; bool rev[maxn]; inline void reverse(int x){ swap(ch[x][0]…