傳送門
按照紫荊花之戀的做法,動態維護一下點分樹的形態
把點隨機打亂
每次從當前的根開始 \(explore\),如果已經有了就暴力跳到那個點
否則加入這個點
注意一條鏈的要單獨處理
# include # include "rts.h"
using namespace std;
typedef long long ll;
const int maxn(3e5 + 5);
const double alpha(0.7);
int n, first[maxn], cnt, deep[maxn], frt[maxn], vis[maxn], idx, root;
int sz[maxn], nsz, mx[maxn], rt, mark[maxn], size[maxn], id[maxn], see[maxn];
struct edge edge[maxn << 1];
inline void add(int u, int v) , first[u] = cnt++;
edge[cnt] = (edge), first[v] = cnt++;
}void clear(int u, int ff)
void getroot(int u, int ff)
mx[u] = max(mx[u], nsz - sz[u]);
if (!rt || mx[u] < mx[rt]) rt = u;
}void build(int u)
}inline void rebuild(int u)
void update(int u, int v)
++size[frt[u]];
if (frt[u] && alpha * size[frt[u]] < size[u]) mark[frt[u]] = 1;
update(frt[u], v);
if (mark[u]) rebuild(u);
}void play(int n, int t, int datatype)
else
see[id[i]] = 1;
} }else
else
}} }
}
UOJ 349 WC2018 即時戰略
題目鏈結 一開始已知一號點。每次可以選定乙個已知點和乙個未知點,然後互動庫會返回從已知點出發到達未知點路徑上的第二個點。要求在有限步之內知道每乙個點。次數要求 鏈的情況要求 o n o n o n 其餘是 o n logn o nlogn o nlog n 首先是鏈的情況,記錄當前左右端點不斷往後探...
UOJ 349 WC2018 即時戰略
被cqz d沒了。我d cly 關你啥事 逃 首先鏈的情況直接rand就好了。期望次數 o n log n 然而我一開始寫掛了。開始扯淡 我用這個模數,就可以過原題資料 c l y a k i o i 但是用以下兩種都不行 g l y a k i o i c l y a k i o i n o i ...
uoj 349 WC2018 即時戰略
題目鏈結 正解 link cut tree 這道題我在考場上從看題到放棄只花了 20 多分鐘。爆剛 t2 無果,12 點的鐘聲響起,我無奈地開始看這道題,然後發現了生的希望。只寫了二十幾分鐘,然後又滾回去剛 t2 了。正解根本就沒去想了 雖然本來也不會。不得不說這道題的標算還是很妙的,我就算去想也不...