一开始看错题了... 求经过的道路数量就求个lca,把路径上的点置为已经过的话,可以写一个并查集,把某个点往上连续已经过的一段点并起来。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> ...
分类:
其他好文 时间:
2016-07-05 20:46:44
阅读次数:
269
Description A 国有n 个城市,城市之间有一些双向道路相连,并且城市两两之间有唯一 路径。现在有火车在城市 a,需要经过m 个城市。火车按照以下规则行驶:每次 行驶到还没有经过的城市中在 m 个城市中最靠前的。现在小 A 想知道火车经过 这m 个城市后所经过的道路数量。 A 国有n 个城 ...
分类:
其他好文 时间:
2016-06-28 09:27:48
阅读次数:
223
题解:
首先找两点之间路径可以用倍增LCA。
然后标记哪个点走过可以用并查集,均摊下来最后是线性的。
代码:
#include
#include
#include
#include
#define N 501000
#define LOGN 20
using namespace std;
struct Eli
{
int v,next;
}e[N1];
int head...
分类:
其他好文 时间:
2015-03-31 18:15:24
阅读次数:
146