2138=數據結構實驗之圖論三:判斷可達性
阿新 • • 發佈:2019-02-17
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 elseprintf("NO\n"); 41 } 42 return 0; 43 }
2138=數據結構實驗之圖論三:判斷可達性