最近公共祖先
文章平均质量分 74
BraketBN
这个作者很懒,什么都没留下…
展开
-
【HDU2586】How far away ?【离线】【TarjanLCA】
【题目链接】学习一发高端的TarjanLCA。注意并查集合并时必须用v的父亲与u的父亲合并。/* Pigonometry */#include #include #include #include using namespace std;const int maxn = 40005, maxm = 205;int n, m, head[maxn], cnt,原创 2016-04-07 09:37:01 · 356 阅读 · 0 评论 -
【Codeforces613D】Kingdom and its Cities【虚树】【Tree DP】
http://codeforces.com/problemset/problem/613/D题意:给出n个点的树,有q个询问,每次询问给出k个重要的点,问至少删掉多少个非重要的点,使得这个重要的点都不连通。 首先对于一个询问,无解的情况肯定是有两个相邻的重要点,直接特判就行。对于其他情况,进行一次tree dp。如果当前点为非重要点,且它的子树中有至少两个重要点,那原创 2016-03-14 16:22:56 · 1038 阅读 · 0 评论 -
【SPOJ-COT】Count on a tree【主席树】【LCA】
【题目链接】同【BZOJ2588题解】除过不强制在线,都是一样的。/* Pigonometry */#include #include using namespace std;typedef long long LL;const int maxn = 100005, maxnode = 2000005;int n, m, tot, num[maxn],原创 2016-04-07 16:59:44 · 658 阅读 · 0 评论 -
【BZOJ2588】Spoj 10628. Count on a tree【主席树】【LCA】
【题目链接】同【SPOJ-COT题解】就是强制在线了。RE了快半年,终于AC了。读入优化那里要开LL,但是返回int。(我也不知道为什么)/* Pigonometry */#include #include using namespace std;typedef long long LL;const int maxn = 100005, maxnode =原创 2016-04-07 17:00:06 · 509 阅读 · 0 评论 -
【BZOJ1977】[BeiJing2010组队]次小生成树 Tree【次小生成树】【LCA】
【题目链接】次小生成树。。思路比较简单,先求出最小生成树,然后枚举每条不在最小生成树上的边(u, v),求u和v路径上的最大边权和次大边权。如果最大边权和(u, v)的边权相等,那么减去次大边的边权,加上(u, v)的边权,更新答案。如果最大边权比(u, v)的边权要小,那么减去最大边的边权,加上(u, v)的边权,更新答案。调了几个小时= =,注意要开LL,而且i原创 2016-04-09 15:38:50 · 591 阅读 · 0 评论 -
【BZOJ4326】NOIP2015 运输计划【LCA】【路径求并】
【题目链接】大概并没有用正解,卡常数A了。先二分答案mid,那么边权变为0的边一定在所有长度大于mid的路径的交上,且这条边的边权至少为路径长度减去mid(否则不可能长度不可能降低到mid之下)。每次check,把长度大于mid的路径加进去,求一次交(一次dfs就求出来了),遍历每条边,看是否有边满足上述条件。/* Pigonometry */#include #include原创 2016-04-15 08:54:12 · 519 阅读 · 0 评论