NYOJ20 吝嗇的國度 (dfs)

2022-01-12 22:28:01 字數 1296 閱讀 5009

記憶體限制:64mb時間限制:1000ms特判: no

難度: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

分析:有n個點,只有(n-1)條邊把它們全部連通,則不存在該情況:(從1出發走到5,然而也能從1出發到3再到5),

否則有環,有環還想只用(n-1)條邊連通全部的點是不可能的。

題目要求到達某個點的前乙個點,就是目的地的上乙個必經點。

不走重複的路,意味著一條路走到黑,暗示用dfs。

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define inf 0x3f3f3f3f

using

namespace

std;

int ans[100005

];vector

vec[100005

];int

t,n,s;

void dfs(ints)}

intmain()

dfs(s);

//起點開始搜

ans[s]=-1

;

inti;

for(i=1;i<=n;i++)

}return0;

}

NYOJ 20 吝嗇的國度 DFS

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個吝嗇的國度裡有n個城市,這n個城市間只有n 1條路把這個n個城市連線起來。現在,tom在第s號城市,他有張該國地圖,他想知道如果自己要去參觀第t號城市,必須經過的前乙個城市是幾號城市 假設你不走重複的路 輸入第一行輸入乙個...

NYOJ 20 吝嗇的國度 DFS

吝嗇的國度 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個吝嗇的國度裡有n個城市,這n個城市間只有n 1條路把這個n個城市連線起來。現在,tom在第s號城市,他有張該國地圖,他想知道如果自己要去參觀第t號城市,必須經過的前乙個城市是幾號城市 假設你不走重複的路 輸入 ...

nyoj20 吝嗇的國度(dfs)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個吝嗇的國度裡有n個城市,這n個城市間只有n 1條路把這個n個城市連線起來。現在,tom在第s號城市,他有張該國地圖,他想知道如果自己要去參觀第t號城市,必須經過的前乙個城市是幾號城市 假設你不走重複的路 輸入第一行輸入乙個...