Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出l r z,求sigma_{l 2 #include 3 #include ...
分类:
其他好文 时间:
2016-01-14 20:46:06
阅读次数:
219
【马上就要期末考试了,这两天再写个几题估计就要滚粗去搞文化课了qaq】拿到这道题很容易能够联想到LCA。。然而我这个大弱智一开始想当然地求了三个点的LCA,然后发现连样例都过不去。。实际上这很显然是错误的,画个图模拟一下样例就知道了。然后去搜题解。题解说对三个点两两求LCA,在得到的三个LCA中枚举...
分类:
其他好文 时间:
2016-01-04 21:04:15
阅读次数:
323
对于一个盘子(dep[u]中,当且仅当 ①lca(u,v)==u时 设w为u的是v的祖先的儿子,则 1 2 using namespace std; 3 #define maxn 40005 4 #define maxt 32000005 5 6 int c...
分类:
其他好文 时间:
2016-01-03 19:35:26
阅读次数:
219
1602: [Usaco2008 Oct]牧场行走Time Limit: 5 SecMemory Limit: 64 MBSubmit: 379Solved: 216[Submit][Status][Discuss]DescriptionN头牛(2 2 #include 3 #include 4 #...
分类:
其他好文 时间:
2016-01-03 16:56:10
阅读次数:
298
题目链接给一棵树, m个操作, 一共两种操作, 将第x个点的权值改为y, 询问x->y路径上权值第k大的点的权值。暴力的找..... 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #i...
分类:
Web程序 时间:
2016-01-02 16:16:15
阅读次数:
188
题目链接给一棵树, m个询问, 每个询问给出3个点, 求这三个点之间的最短距离。其实就是两两之间的最短距离加起来除2.倍增的lca模板#include #include #include #include #include #include #include #include #include #i...
分类:
其他好文 时间:
2016-01-02 16:11:53
阅读次数:
123
题目链接给n个城市, m条边, q个询问, 每个询问, 输出城市a和b的最短距离, 如果不联通, 输出not connected。用并查集判联通, 如果不连通, 那么两个联通块之间加一条权值很大的边。 然后树链剖分.....#include #include #include #include #i...
分类:
其他好文 时间:
2016-01-02 14:16:06
阅读次数:
175
一开始直接无脑tarjan,回溯只能一层层往上走,太慢了,加了各种优化还是TLE后来了解到LCA倍增法(在线)。复杂度其实相比LCA转RMQ以及tarjan是要稍差一些,但是其中能同步维护的只有LCA倍增,很神奇的算法#include"cstdio"#include"queue"#include"c...
分类:
其他好文 时间:
2016-01-02 01:07:25
阅读次数:
941
由于有m条边,考虑建一颗最大生成树,然后LCA求解问题。这题也是神TM多细节。。。#include#include#include#include#include#define maxv 40005#define maxe 200005#define maxq 30005using namespac...
分类:
其他好文 时间:
2016-01-01 11:05:47
阅读次数:
149
首先考虑暴力,可以枚举每两个点求lca进行计算,复杂度O(n^3logn),再考虑如果枚举每个点作为lca去枚举这个点的子树中的点复杂度会大幅下降,如果我们将每个点递归考虑,每次计算过这个点就把这个点删掉,那么如果每次删掉的点是当前子树的重心,枚举点对的复杂度就只有O(logn),对于每次查询答案在...
分类:
其他好文 时间:
2015-12-31 07:13:35
阅读次数:
177