JLOI2014 松鼠的新家 樹上差分

2021-08-29 23:25:14 字數 898 閱讀 5671

qwq

很裸的一道樹上差分,不過和往常還不太一樣。

根據題目中給出的ai來差分,最後肯定有點被多加了值,所以最後再跑一邊去掉就好。

然而…… 我lca的模板打錯了……

#include#include#include#includeusing namespace std;

const long long l = 300005;

struct node ;

node e[2*l];

long long n , q[l] , tot , head[l] , vis[l] , deep[l] , fa[l][35] , num[l];

void add(long long x , long long y)

void dfs(long long u)

}long long lca(long long x , long long y)

void sol(long long l , long long r)

void qans(long long u)

}int main()

dfs(0);

for(int i=1; i<=30; i++)

for(int j=1; j<=n; j++)

fa[j][i] = fa[fa[j][i-1]][i-1];

for(int i=1; imemset(vis , 0 , sizeof(vis));

qans(0);

for(int i=2; i<=n; i++)

num[q[i]]--;

for(int i=1; i<=n; i++)

printf("%lld\n",num[i]);

return 0;

}

JLOI2014 松鼠的新家

裸的 樹鏈剖分 然而 並不用線段樹 求x,y的lca 後 在 x上標記加一,y上標記加一 lca標記減一,fa lca 標記減一 include int n int shunxv 300005 int to 600005 next 600005 head 600005 cnt void add in...

JLOI2014 松鼠的新家

time limit 10 sec memory limit 128 mb submit 1736 solved 840 松鼠的新家是一棵樹,前幾天剛剛裝修了新家,新家有n個房間,並且有n 1根樹枝連線,每個房間都可以相互到達,且倆個房間之間的路線都是唯一的。天哪,他居然真的住在 樹 上。松鼠想邀請...

JLOI2014 松鼠的新家

松鼠的新家是一棵樹,前幾天剛剛裝修了新家,新家有n個房間,並且有n 1根樹枝連線,每個房間都可以相互到達,且倆個房間之間的路線都是唯一的。天哪,他居然真的住在 樹 上。松鼠想邀請小熊維尼前來參觀,並且還指定乙份參觀指南,他希望維尼能夠按照他的指南順序,先去a1,再去a2,最後到an,去參觀新家。可是...