确定比赛名次
Problem Description
有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。
Input
输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。
Output
给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。
其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求.
Sample Input
4 3

1 2
2 3
4 3
Sample Output

1 2 4 3

 1 #include<cstdio>
 2 #include<cmath>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7 const int MAXN=1000;
 8 int b[MAXN][MAXN];            //邻接矩阵
 9 int n,m,sum;
10 int topsort()
11 {
12     bool Visit[MAXN];
13     for(int i=1;i<=n;i++)
14         Visit[i]=false;            //避免重复访问
15     for(int o=1;o<=n;o++)            //遍历n次
16     {
17         for(int j=1;j<=n;j++)            //遍历n列
18         {
19             sum=0;            //入度初始化为零
20             for(int i=1;i<=n;i++)
21             {
22                 sum+=b[i][j];            //计算节点的入度
23             }
24             if(!Visit[j] && sum==0)             //如果该节点没有访问过且入读为零
25             {
26                 printf("%d ",j);            //输出节点
27                 Visit[j]=true;            //标记该节点已访问过
28                 for(int k=1;k<=n;k++)
29                     b[j][k]=0;                //与j节点相邻的所有节点入度清零
30             }
31         }
32     }
33 }
34 int main()
35 {
36     int win,fail;
37     cin>>n>>m;
38     memset(b,0,sizeof(b));
39     for(int i=1;i<=m;i++)
40     {
41         cin>>win>>fail;
42         b[win][fail]=1;            //放入邻接矩阵
43     }
44     topsort();            //执行拓扑排序
45     return 0;
46 }

转载于:https://www.cnblogs.com/Victor-ZhaoYiWei/p/7137847.html

拓扑排序 确定比赛名次相关推荐

  1. HDU 1285 - 确定比赛名次(拓扑排序)

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  2. [ACM] hdu 1285 确定比赛名次 (拓扑排序)

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  3. 【拓扑排序】确定比赛名次

    HDU P1285 确定比赛名次 拓扑排序裸题qwq 注意:入度为一的点删掉之后,它的入度要更新为-1 这个题刷出了我人生中第一次PE 可还行qaq 我搜索PE是输出格式与标准输出不符, 结果发现语言 ...

  4. HDU 1285:确定比赛名次(拓扑排序)

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  5. HDU1285 确定比赛名次【拓扑排序】

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  6. HDU-1285 确定比赛名次 拓扑排序

    确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)           ...

  7. 图论--拓扑排序--HDU-1285确定比赛名次

    Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...

  8. 【HDU - 1285】确定比赛名次 (拓扑排序)

    题干: 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩 ...

  9. HDU1285确定比赛名次(拓扑排序+优先队列)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1285 思路 每场比赛的结果我们可以看成一个有向图,从胜利的一方指向失败的一方,在这个有向图的入度为0的 ...

最新文章

  1. 在vue中怎么写行内样式高_说说在 Vue.js 中如何绑定样式(class 或 style)
  2. 数据库笔记(数据库操作)
  3. 软件开发工程师证书有用吗_bim工程师证书有用吗
  4. 嘿,我这里有一个 Survey!
  5. Android 获取手机号及运营商信息
  6. 队列 句子分析 精辟的诠释 有图片
  7. 看漫画学python 电子书_看漫画学Python电子版(mobi azw3 epub)
  8. 【工艺】集成电路中的工艺及其方式
  9. Windows系统设置局域网共享 解决:登录失败,用户账号限制。可能的原因包括不允许空密码,登录时间限制,或强制的策略限制
  10. python 输出圆的面积公式_python计算圆的面积
  11. c语言编程照抄能学好吗,电子信息类专业学生必看:一位老电子工程师十年感悟...
  12. 10.恩智浦-车规级-MCU:S32K11X FTM-PWM输出实验
  13. 天蝎项目整机柜服务器技术规范v1.01,天蝎项目整机柜服务器技术规范v1.01.pdf
  14. 【OKR】11-12双月 OKR复盘
  15. 关于差分放大器双电源改单电源问题的讨论(AD628)
  16. 《小QQ 大帝国 马化腾传奇》熊江
  17. 【EXLIBRIS】随笔记 002
  18. 湖南大学计算机学硕经验分享,2021湖南大学计算机专硕备考经验分享
  19. 如何理解工程测量中的各种误差
  20. fscanf php,php fscanf 函数_PHP教程

热门文章

  1. markdown java 代码高亮_MarkdownPad2使用代码高亮插件
  2. 统信uos系统考试题_离Windows更近一步!微信Linux原生版上线:国产统信UOS系统已适配...
  3. php对mysql基础操作_php+mysql的基础操作
  4. 嵌入式C中,全局变量滥用的后果竟如此严重?
  5. java 文件封装_Java 封装
  6. kettle 资料_Kettle的使用-初级
  7. java spring注入 静态方法_JAVA静态方法中如何使用spring@Value进行注入的成员变量...
  8. python函数的作用降低编程复杂度_Python函数式编程
  9. OneNote使用说明
  10. 工业交换机那么贵,为什么那么多人都在用?