描述
狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n-1條路連線這n個節點,節點的編號是1-n(1為根節點)。sheep的寵物非常笨,他們只會向前走,不會退後(只向雙親節點走),sheep想知道他們最早什麼時候會相遇(即步數最少)。
n的範圍《=1000000
輸入格式
第1行:乙個正整數n,表示節點個數。
第2~n行:兩個非負整數a和b,表示a是b的雙親。(保證a,b<=n)
第n+1行:兩個非負整數a和b,表示兩隻寵物所在節點的位置。(保證a,b<=n)
輸出格式
輸出他們最早相遇的節點號。
資料:
10
1 21 3
1 42 5
2 63 7
4 84 9
4 10
3 6輸出1
#include #define mxn 1000000+10
#define loc
using namespace std;
int n;
int x,y;
int f[mxn];
bool v[mxn];
void dfs(int x)
v[x]=true;
if (x!=1) dfs(f[x]);
}int main()
{ scanf("%d",&n);
for (int i=1; i
這個深搜效率比較好,遞迴的層數簡單比較少;
PID28 Stupid 愚蠢的寵物
題鏈 題目描述 背景大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 描述狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n 1條路連線這n個節點,節點的編...
rqnoj28 Stupid 愚蠢的寵物
題目描述 背景大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 描述狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n 1條路連線這n個節點,節點的編號是1...
Rqnoj28 愚蠢的寵物 最近公共祖先
本來想學並查集的,看了黃學長的部落格,有道題叫 愚蠢的寵物 就看了看,然而這道題和並查集並沒有多大關係,而是一道最近公共祖先的題,就學了最近公共祖先,以這道題為例,我所了解的求法有3種 1 是黃學長的方法。記錄x和y到每個節點的路徑長度,求到每個節點的路徑長度和,最小的乙個就是答案。是黃學長的 in...