洛谷p3398仓鼠找suger题解
我现在爱死树链剖分了 题目 具体分析的话在 洛谷blog 里 这里只是想放一下改完之后的代码 多了一个son数组少了一个for 少了找size最大的儿子的for #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 100100; int n, q, head[N], cnt, dad[N], top[N], size[N], deep[N], son[N]; struct edge{ int next, to; }e[N << 1]; int read() { int s = 0, w = 1; char ch = getchar(); while(!isdigit(ch)) {if(ch == '-') w = -1;ch = getchar();} while(isdigit(ch)) {s = s * 10 + ch - '0';ch = getchar();} return s * w; } void add(int x, int y) { e[++cnt].next = head[x]; e[cnt].to = y; head[x] = cnt; } void dfs(int now) { size