題解:因為是樹所以路徑一定唯一,那麼我們先算出a,b的lca為f1再算出c,d的lcaf2那麼不難發現是求是否有重合路徑,我們先把a到b的路徑拆成a到f1和b到f1兩條路徑,那麼就是求c到f2和前兩個是否有重合或者d到f2是否與前兩個有重合
#includeusing namespace std;
int head[100005];
int next[200005];
int ver[200005];
int d[100005];
int f[100005][25];
int tot=1,t;
int n,q;
int read()
while(ch>='0'&&ch<='9')
return num;
}void add(int x,int y)
void dfs(int x,int fa)
for(int i=head[x];i;i=next[i])
}int lca(int x,int y)
if(x==y)
for(int i=t;i>=0;i--)
} return f[x][0];
}int main()
dfs(1,0);
q=read();
for(int i=1;i<=q;i++)
return 0;
}
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...
NOIP模擬賽 分錢
題目描述 兩個人在街上撿到了一些錢,這些錢共有n張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...