時間限制: 1 s
空間限制: 128000 kb
題目等級 : ** gold
題解檢視執行結果
大家都知道,sheep有兩隻可愛的寵物(乙隻叫神牛,乙隻叫神菜)。有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了……
狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n-1條路連線這n個節點,節點的編號是1-n(1為根節點)。sheep的寵物非常笨,他們只會向前走,不會退後(只向雙親節點走),sheep想知道他們最早什麼時候會相遇(即步數最少)。
輸入描述 input description
第1行:乙個正整數n,表示節點個數。
第2~n行:兩個非負整數a和b,表示a是b的雙親。(保證a,b<=n)
第n+1行:兩個非負整數a和b,表示兩隻寵物所在節點的位置。(保證a,b<=n)
輸出描述 output description
輸出他們最早相遇的節點號。
樣例輸入 sample input
101 2
1 31 4
2 52 6
3 74 8
4 94 10
3 6樣例輸出 sample output
資料範圍及提示 data size & hint
對於10%的資料,n<10^6
對於100%的資料,n<=10^6
/*樹剖 lcalca能解決的事為什麼要貼上搜尋的標籤。。
*/#include
#include
#include
using
namespace
std;
#define maxn 1000010
int n,s1,s2,head[maxn*2
],num,son[maxn],sz[maxn],top[maxn],fa[maxn],dep[maxn];
struct
nodee[maxn*2
];void insert(int
from,int
to)void dfs1(int u,int
father)
}void dfs2(int u,int
father)
}int lca(int x,int
y)
if(dep[x]return
x;
else
returny;}
intmain()
scanf(
"%d%d
",&s1,&s2);
dfs1(
1,0);
dfs2(
1,1);
printf("%d
",lca(s1,s2));
}
T1503 愚蠢的寵物 codevs
時間限制 1 s 空間限制 128000 kb 題目等級 gold 題目描述 description 大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常...
rqnoj28 Stupid 愚蠢的寵物
題目描述 背景大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 描述狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n 1條路連線這n個節點,節點的編號是1...
PID28 Stupid 愚蠢的寵物
題鏈 題目描述 背景大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 描述狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n 1條路連線這n個節點,節點的編...