巡回赛 -- 简单的拓扑排序

这是我最爱的 红色  .   NICE       

题意 : 第一行 测试案例的组数     第二行每一组案例的  拳手个数  和   比赛的场数    如果不能确定唯一的排名 就输出  No Answer        下面附上渣渣代码   

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<queue>
 7 #include<vector>
 8 #include<set>
 9 #include<stack>
10 #include<string>
11 #include<sstream>
12 #include<map>
13 #include<cctype>
14 using namespace std;
15 int a[30][30],n,m,visited[30],result[30];
16 void topsort()   //  有唯一的  序列
17 {
18     int mark=0,flag,fuck=1;
19     for(int i=1;i<=n;i++)   //  从第一名开始找
20     {
21         mark=0;
22         for(int j=0;j<n;j++)   //  从这些人中 开始找
23         {
24             if(visited[j]==0)   //  没有爸爸
25             {
26                 flag=j;   //   这个 没有 爸爸
27                 mark++;
28             }
29         }
30         if(mark!=1)  //  1 : mark=0  就是  都有爸爸 , 成环了 2 :  有两个没爸爸的  ,   搞基了
31         {
32             fuck=0;
33             printf("No Answer");
34             break;
35         }
36         result[i]=flag;         //  第一名存起来
37         visited[flag]--;            //  第一名欠一个爸爸  (  这个人已经被用了  )
38         for(int k=0;k<n;k++)
39         {
40             if(a[k][flag])     //  以刚才没有爸爸的人 做爸爸的 ( 也就是 没有爷爷 )  , 现在爸爸死了 , 儿子们的亲爸爸 -1
41             {
42                 visited[k]--;
43             }
44         }
45     }
46     if(fuck)
47         for(int i=1;i<=n;i++)
48         printf("%c",result[i]+'A');
49     printf("\n");
50 }
51 int main()
52 {
53     int t;
54     scanf("%d",&t);
55     while(t--)
56     {
57         scanf("%d%d",&n,&m);
58         memset(visited,0,sizeof(visited));
59         memset(a,0,sizeof(a));
60         for(int i=0;i<m;i++)
61         {
62             char b,c;
63             scanf(" %c %c",&b,&c);
64             if(a[c-'A'][b-'A']==0)    //  直接 防止 有重边      //由于 从  高到底输出
65             {
66                 a[c-'A'][b-'A']=1;   //   c   有一个  叫做   b 的 爸爸
67                 visited[c-'A']++;    //  c 的爸爸数 ++
68             }
69         }
70         topsort();
71     }
72 }

 

posted @ 2016-04-07 19:38  X-POWER  阅读(154)  评论(0编辑  收藏  举报