1. 程式人生 > >2138=數據結構實驗之圖論三:判斷可達性

2138=數據結構實驗之圖論三:判斷可達性

nbsp 標記 str bsp ++ 表示 圖論 spa scan

 1 #include <stdio.h>
 2 #include <string.h>
 3 int map[1000][1000];
 4 int visit[1000];
 5 int n;
 6 int max;//利用max來標記是否達到隘口1,如達到則max=1。
 7 void DFS(int t)
 8 {
 9     visit[t]=1;
10     int i;
11     for(i=n; i>=0; i--) //從n開始出發。
12     {
13         if(map[t][i]==1&&visit[i]==0)
14         {
15 if(i==1) 16 { 17 max=1; //若i=1,則表示能夠到達。 18 return; 19 } 20 DFS(i); 21 } 22 } 23 } 24 int main() 25 { 26 int m; 27 while(~scanf("%d %d",&n,&m)) 28 { 29 int i,a,b; 30 max=0;
31 memset(map,0,sizeof(map)); 32 memset(visit,0,sizeof(visit)); 33 for(i=0; i<m; i++) 34 { 35 scanf("%d %d",&a,&b); 36 map[a][b]=1;//此題路線是單向。 37 } 38 DFS(n);//因為天災軍團在n隘口,所以從n隘口出發。 39 if(max==1)printf("YES\n"); 40 else
printf("NO\n"); 41 } 42 return 0; 43 }

2138=數據結構實驗之圖論三:判斷可達性