Thrall’s Dream 第四届山东省省赛 (直接暴力DFS)

题目链接:题目

AC代码:

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 #include<cstring>
 5 #include<cstdio>
 6 using namespace std;
 7 const int N = 2010;
 8 int m,n;
 9 bool vis[N][N],vis1[N];
10 vector< int >mm[N];
11 void dfs(int m,int x)
12 {
13     if(mm[x].size()==0) return;
14     for(int i=0;i<mm[x].size();i++)
15     {
16         if(vis[m][mm[x][i]] == false)
17         {
18             vis[m][mm[x][i]]=true;
19             int t = mm[x][i];
20             dfs(m,t);
21         }
22     }
23 }
24 int main()
25 {
26     int T,cas =1,x,y;
27     scanf("%d",&T);
28     while(T--)
29     {
30         scanf("%d %d",&m,&n);
31         for(int i=1;i<=m;i++)
32             mm[i].clear();
33         for(int i=0; i<n; i++)
34         {
35              scanf("%d %d",&x,&y);
36              mm[x].push_back(y);
37         }
38         memset(vis,false,sizeof(vis));
39         for(int i=1;i<=m;i++)
40             vis[i][i] = true;
41         for(int i =1;i<=m;i++) dfs(i,i);
42         bool flag = true;
43         for(int i=1;i<=m;i++)
44         {
45             for(int j=1;j<=m;j++)
46              {
47                     if(vis[i][j] == false &&  vis[j][i] == false)
48                     {
49                         flag = false;
50                         goto end;
51                     }
52               }
53         }
54     end:  if (flag) printf("Case %d: Kalimdor is just ahead\n",cas++);
55        else printf("Case %d: The Burning Shadow consume us all\n",cas++);
56     }
57     return 0;
58 }

 

posted on 2015-04-29 09:47  细雨微光  阅读(335)  评论(0编辑  收藏  举报