生化危機 20 分

2021-09-30 20:39:28 字數 1508 閱讀 3757

人類正在經歷一場生化危機,許多城市已經被病毒侵襲,這些城市中的人們為了避免感染病毒,計畫開車逃往其他沒有被病毒入侵的城市(安全城市)。有些城市之間有公路直達,有些沒有。雖然他們知道哪些城市是安全的,但是不知道有沒有一條安全路徑能夠到達安全城市(只有該路徑上經過的所有城市都是安全的,該路徑才是安全路徑)。請你編寫乙個程式幫助他們判斷。

輸入第一行為三個正整數,分別表示所有城市個數m(m<=100)、安全城市個數n(m<=50)、公路個數k(k<=100)。隨後一行給出n個安全城市的編號。隨後k行,每一行給出兩個整數,表示連線一條公路的兩個城市編號。最後一行輸入兩個整數,分別表示當前所在城市s、目標城市d。每行整數之間都用空格分隔。

若目標城市已被病毒入侵(非安全城市),輸出"the city i is not safe!";若目標城市為安全城市且從當前所在城市能夠經過一條安全路徑到達目標城市,輸出"the city can arrive safely!";若目標城市為安全城市但是從當前所在城市沒有一條安全路徑到達目標城市,輸出"the city can not arrive safely!",i為目標城市編號。

5 2 5

3 40 1

0 20 4

1 22 4

0 4

the city 4 can arrive safely!
5 2 5

3 40 1

0 20 4

1 22 4

0 3

the city 3 can not arrive safely!
5 2 5

3 40 1

0 20 4

1 22 4

0 1

the city 1 is not safe!
思路:

本來一開始想這題覺得挺難的,需要用到圖的深搜來遍歷每一條路,最後來找一條安全的路到達目標城市,但是寫完過完樣例提交後,答案錯誤了。然後重新看了一遍題目,發現這題的思路因該是很簡單的,直接用鄰接矩陣存下城市就可以了,最後直接查詢目標城市和目前所在的城市之間是否有通路就行了。

#include

#define maxn 100

typedef

struct

amgraph;

intmain()

for(

int i=

0;ifor(

int i=

0;i)int now,destination,flag=0;

//所在城市和目的地

scanf

("%d %d"

,&now,

&destination)

;for

(int i=

0;iif(g.arcs[now]

[destination]==1

)}else

return0;

}

qduoj 生化危機

1 2 利用鄰接表儲存圖,考慮到城市個數比較多所以使用動態陣列,注意陣列的初始化和各項資料的初始化 include include include includeusing namespace std const int m 1e4 5 struct node queueq int cnt m 儲存...

C 生化危機 SDUT

problem description 由於bhs公司製造了一種病毒,這種病毒可以將死去的人們,變成喪屍,這個公司通過販賣這種病毒,來獲取巨大的利益,而正義的ljj當然會阻止這種行為,在行動中由於失誤,將這種病毒洩露了,從而感染了全球。將地球劃分成乙個由方格組成的地圖,包含兩個大寫字母 w 代表未被...

soj1080生化危機三

背景 由於對map使用的不熟悉,先一直無法編譯通過,當糾正了map的錯誤後,一次ac。思路 先用map對每個怪物需要消耗的子彈和乙個怪物會傷害人多少血進行對映,然後就是簡單模擬了。學習 map的簡單使用。include include using namespace std mapxue,zidan...