小倉鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每個節點的編號為1~n。地下洞穴是乙個樹形結構。這一天小倉鼠打算從從他的臥室(a)到餐廳(b),而他的**同時要從他的臥室(c)到圖書館(d)。他們都會走最短路徑。現在小倉鼠希望知道,有沒有可能在某個地方,可以碰到他的**?小倉鼠那麼弱,還要天天被zzq大爺虐,請你快來救救他吧!
第一行兩個正整數n和q,表示這棵樹節點的個數和詢問的個數。接下來n-1行,每行兩個正整數u和v,表示節點u到節點v之間有一條邊。
接下來q行,每行四個正整數a、b、c和d,表示節點編號,也就是一次詢問,其意義如上。
對於每個詢問,如果有公共點,輸出大寫字母「y」;否則輸出「n」。
123
4567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
4445
4647
4849
5051
5253
5455
5657
5859
6061
6263
64
#includeusing namespace std;
#define init(a,b) memset(a,b,sizeof(a))
const int maxn=1e5+7;
int begin[maxn],fa[maxn][30],lg[maxn],depth[maxn];
struct edgeae[maxn<<1];
int tot=0,n,q;
int a,b,c,d;
void add(int x,int y);
begin[x]=tot++;
} void dfs(int now,int f)
return fa[x][0];
}bool judge(int x,int y)
int main(){
init(begin,-1);
scanf("%d %d",&n,&q);
for(int i=0;i
洛谷 3398 倉鼠找sugar
題目描述 小倉鼠的和他的基 me i mei mei 友 zi sug ar zi sugar zi su gar住在地下洞穴中,每個節點的編號為1 n1 n 1n。地下洞穴是乙個樹形結構。這一天小倉鼠打算從從他的臥室 a a a 到餐廳 b b b 而他的 同時要從他的臥室 c c c 到圖書館 ...
洛谷3398 倉鼠找sugar
小倉鼠的和他的基 mei 友 zi sugar住在地下洞穴中,每個節點的編號為1 n。地下洞穴是乙個樹形結構。這一天小倉鼠打算從從他的臥室 a 到餐廳 b 而他的 同時要從他的臥室 c 到圖書館 d 他們都會走最短路徑。現在小倉鼠希望知道,有沒有可能在某個地方,可以碰到他的 小倉鼠那麼弱,還要天天被...
洛谷 P3398 倉鼠找sugar(樹剖,LCA)
很顯然,就是在一棵樹上,求兩條路徑有沒有交點。我們可以先分別求出兩條路徑兩段點的lca,設為rtab和rtcd然後分以下情況討論 這時候可能會發現,會不會rtab和rtcd的深度相同這種情況呢?如果rtab和rtcd深度相同卻又不是同乙個節點 若是同乙個節點在第一種情況裡已經判斷 顯然兩條路徑不可能...