SPOJ - OTOCI LCT】的更多相关文章

OTOCI Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18141 Description Some time ago Mirko founded a new tourist agency named "Dreams of Ice". The agency purchased N icy islands near the S…
SPOJ OTOCI 裸的动态树问题. 回顾一下我们对树的认识. 最初,它是一个连通的无向的无环的图,然后我们发现由一个根出发进行BFS 会出现层次分明的树状图形. 然后根据树的递归和层次性质,我们得到了很多有趣的算法,比如单源最短路等等. 如今,我们面对更复杂的问题,给定一个森林,随时更改树的形态,并询问两个节点之间路径上所有点的权值和. 要求复杂度O(Logn) 我们把树看作由若干条链构成,每个链用一个splay维护. 至此,我们对树的认识已经到了一个比较高的水平了. 关于LCT的详细阐述,…
题目链接 这个题已经处于花式tle了,改版后的spoj更慢了.. tle的话就多交几把... #include <iostream> #include <fstream> #include <string> #include <time.h> #include <vector> #include <map> #include <queue> #include <algorithm> #include <s…
1180: [CROATIAN2009]OTOCI Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 961  Solved: 594[Submit][Status][Discuss] Description 给出n个结点以及每个点初始时对应的权值wi.起始时点与点之间没有连边.有3类操作: 1.bridge A B:询问结点A与结点B是否连通.如果是则输出“no”.否则输出“yes”,并且在结点A和结点B之间连一条无向边. 2.penguins A…
题目描述 给出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<=…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1180 本题和BZOJ2843一样. BZOJ2843 极地旅行社 LCT 题意概括 有n座岛 每座岛上的企鹅数量虽然会有所改变,但是始终在[0, 1000]之间.你的程序需要处理以下三种命令: 1."bridge A B"——在A与B之间建立一座大桥(A与B是不同的岛屿).由于经费限制,这项命令被接受,当且仅当A与B不联通.若这项命令被接受,你的程序需要输出"yes"…
题目描述 给出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<=n<=300…
题目链接 题意: 给定n个点 q个询问 以下n-1行给出树边,点有黑或白色.初始化为白色 以下q行: 询问有2种: 1. 0 x 把x点黑变白,白变黑 2.1 x 询问Path(1,x)路径上第一个黑点的点标, 若不存在黑点则输出-1 思路: lct裸题 #include <iostream> #include <fstream> #include <string> #include <time.h> #include <vector> #inc…
题目链接 题意: 给一棵树.有边权 1.询问路径的边权和 2.询问沿着路径的第k个点标. 思路:lct裸题. #include <iostream> #include <fstream> #include <string> #include <time.h> #include <vector> #include <map> #include <queue> #include <algorithm> #inclu…
题目链接 对于每一个节点,记录这个节点所在链的信息: ls:(链的上端点)距离链内部近期的白点距离 rs:(链的下端点)距离链内部近期的白点距离 注意以上都是实边 虚边的信息用一个set维护. set维护的是对于每一个不是链上,可是this的子树,那些子树中距离this近期的白点距离. #include <stdio.h> #include <string.h> #include <set> #include <algorithm> #include <…