Swust OJ 85 單向公路 BFS

2022-05-13 03:55:21 字數 1444 閱讀 2690

time limit(ms): 5000      memory limit(kb): 65535

description

某個地區有許多城鎮,但並不是每個城鎮都跟其他城鎮有公路連線,且有公路的並不都能雙向行駛。現在我們把這些城鎮間的公路分布及允許的行駛方向告訴你,你需要程式設計解決通過公路是否可以從乙個城鎮到達另乙個城鎮。(我們規定,城鎮自己跟自己可互相到達,即a可到達a).

input

第一行只有乙個數n,下面將跟著2n行資料. 在前n行資料中,對於每行資料,最開頭乙個數字number,表明這一行總共有number個數,number的下乙個數為i,代表編號為i的那個城鎮.這行餘下的就是跟i有公路連線的城鎮的(編號)名單,且只能從城鎮i駛向其他城鎮。如 4 1 2 3,表明:此行有4個數,跟城鎮1有公路連線的城鎮是編號為2和3的城鎮.是從1連到2 和3 ,不能從2 和3 連到1. 在後n行資料中,每行由兩個數字組成a,b(表示城鎮的編號). 對於每個輸入的數有如下關係 0 <= input_number <= 1000 .

output

對於輸入資料中的每個a,b,判斷是否可以從城鎮a通過公路到達城鎮b,如果可以,輸出yes;否則輸出no.

sample input

34 1 2 3

3 4 5

3 5 8

1 21 8

4 8sample output

yesno

yes解題思路:處理好資料後直接bfs~~~

**如下:

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;

6int mpt[1001][1001], vis[1001];7

int bfs(int x, int y, int

n)19}20

}21return0;

22}23int

main()33}

34for (i = 0; i < t; i++)

39return0;

40 }

view code

以前有個**,個人感覺沒問題,但是一直rutime error,有大神路過給個原因吧~~~

**如下:

1 #include 2 #include 

3#define maxn 10001

4int

map[maxn][maxn], max;

5int dfs(int star, int

next)620

}21return

flag;22}

23int

main()

2444}45

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

4653

return0;

54 }

view code

swustoj合併果子

在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗體力之和。...

swustoj 木材加工 0436

木材廠有一些原木,現在想把這些原木切割成一些長度相同的小段木頭 並不是所有原木都一定要用完,可以有剩餘 需要得到的小段的數目是給定的。當然,我們希望得到的小段越長越好,你的任務是計算能夠得到的小段木頭的最大長度。木頭長度的單位是cm。原木的長度都是正整數,我們要求切割得到的小段木頭的長度也是正整數。...

訓練總結8 5

感覺運用起來比前兩天熟練了許多,這兩天做的搜尋方式,不是原來的那麼簡單的走走,而是改變了一些搜尋的方法,也就是增設了幾個限制條件。比如做的推冰球問題,推冰球的時候沒有碰到邊界或者障礙物的話,要一直的走,碰到障礙物後,障礙物會消失,求走到目標點的最少的步數。blog 在做network saboteu...