Codeforces 588E 樹上主席樹 Lca

2022-05-09 04:51:11 字數 918 閱讀 8272

codeforces 588e duff in the army

西安邀請賽網路賽j的公升級版本,要求輸出具體的方案,這題就沒辦法離線水過去了。對dfs序建乙個主席樹,那麼對於每個詢問答案就是

\(sum[u]+sum[v]-sum[lca(u,v)]-sum[fa[lca(u,v)]]\)

之後就不難了,實現起來比較複雜,不過寫的蠻快的,wa了之後掃了一下主席樹感覺沒什麼問題,就掃了一眼lca 發現最後求lca的部分寫錯了。

#include using namespace std;

#define dd(x) cout<<#x<<"="typedef pair pi;

int dep[maxn], f[maxn][32],cnt, t[maxn];

int n, m, q;

vector num[maxn], v[maxn];

vector ans;

struct node

}t[maxn<<6];

void update(int pre,int &now,int l,int r,int pos)

void dfs(int x,int p,int d)

int lca(int u,int v)

void qr(int x,int y,int z,int d,int l,int r,int k)

int mid = l+r >> 1;

if(sl>=k) qr(t[x].l,t[y].l,t[z].l,t[d].l,l,mid,k);

else

}int main()

rep(i,0,m)

dfs(1,1,0);

rep(i,0,q)

return 0;

}

codeforces 173E 組隊 線段樹 離線

bsny所在的精靈社群有n個居民,每個居民有一定的地位和年齡,ri表示第i個人的地位,ai表示第i個人的年齡。最近社群裡要舉行活動,要求幾個人分成乙個小組,小組中必須要有乙個隊長,要成為隊長有這樣的條件 1 隊長在小組中的地位應該是最高的 可以並列第一 2 小組中其他成員的年齡和隊長的年齡差距不能超...

codeforces 734E 樹的最大直徑

題意 給出乙個樹,每個節點有一種顏色.每次能夠選中乙個節點,其他的點如果到它的路徑上都是這種顏色那麼可以一起改變顏色.問最少需要改變幾次顏色.先按照顏色縮點,然後答案就是縮點之後樹的最大直徑,直接dp即可.include include include include include include...

Codeforces 976E 題解報告

1 當把所有的倍數2 a都加到同一health上,health增加的最多 2 先計算每乙個creature的hp dmg,按該值對所有的creature排序 再求和,i include using namespace std const int n 200 1000 9 int hp n dmg n...