吝嗇的國度
時間限制:
1000
ms | 記憶體限制:
65535kb
難度:3
描述
在乙個吝嗇的國度裡有n個城市,這
n個城市間只有
n-1條路把這個
n個城市連線起來。現在,
tom在第
s號城市,他有張該國地圖,他想知道如果自己要去參觀第
t號城市,必須經過的前乙個城市是幾號城市(假設你不走重複的路)。
輸入
第一行輸入乙個整數m表示測試資料共有
m(1<=m<=5)
組每組測試資料的第一行輸入乙個正整數n(1<=n<=100000)和乙個正整數
s(1<=s<=100000),n
表示城市的總個數,
s表示參觀者所在城市的編號
隨後的n-1行,每行有兩個正整數
a,b(1<=a,b<=n)
,表示第
a號城市和第
b號城市之間有一條路連通。
輸出
每組測試資料輸n個正整數,其中,第
i個數表示從s走到
i號城市,必須要經過的上乙個城市的編號。(其中
i=s時,請輸出-1)
樣例輸入
1
10 1
1 91 8
8 10
10 3
8 61 2
10 4
9 53 7
樣例輸出
-1 1 10 10 9 8 3 1 1 8
#include #include #include #include #include #include #include using namespace std;
const int maxn=100030;
//int a[maxn][maxn]; 報錯,提示陣列太大,用vector
int pre[maxn],t,ans,n;
vectora[maxn];
void dfs(int cur)
{ int i;
for(i=0;i
吝嗇的國度
描述 在乙個吝嗇的國度裡有n個城市,這n個城市間只有n 1條路把這個n個城市連線起來。現在,tom在第s號城市,他有張該國地圖,他想知道如果自己要去參觀第t號城市,必須經過的前乙個城市是幾號城市 假設你不走重複的路 輸入 第一行輸入乙個整數m表示測試資料共有m 1 m 5 組 每組測試資料的第一行輸...
吝嗇的國度
描述 在乙個吝嗇的國度裡有n個城市,這n個城市間只有n 1條路把這個n個城市連線起來。現在,tom在第s號城市,他有張該國地圖,他想知道如果自己要去參觀第t號城市,必須經過的前乙個城市是幾號城市 假設你不走重複的路 輸入 第一行輸入乙個整數m表示測試資料共有m 1 m 5 組 每組測試資料的第一行輸...
吝嗇的國度
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個吝嗇的國度裡有n個城市,這n個城市間只有n 1條路把這個n個城市連線起來。現在,tom在第s號城市,他有張該國地圖,他想知道如果自己要去參觀第t號城市,必須經過的前乙個城市是幾號城市 假設你不走重複的路 輸入第一行輸入乙個...