E - 确定比赛名次
有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

思路:嗯这题吧就是拓补排序

利用度数之间的关系来做的  当入度为0的时候 可以输出然后让相对应的点的入度----;嗯大体就是这个意思  自己真正做出来的第一题开心

然后嗯我觉得处理的关键是小的队伍在前面 所以在最后如果有输出的话 让i=0;保证小的队伍在前面

c++代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int book[505];
int one[505];
int two[505];
int degree[505];
int n,m;
int main()
{while(scanf("%d%d",&n,&m)!=EOF){   int flag=0;int i,j;int k=0;memset(book,0,sizeof(book));memset(one,0,sizeof(one));memset(two,0,sizeof(two));memset(degree,0,sizeof(degree));int x,y;for(i=1;i<=m;i++)    {scanf("%d%d",&x,&y);one[i]=x;two[i]=y;degree[y]++;}for(i=1;;i=(i+1)%n){flag=0;if(i==0)i=n;if(degree[i]==0&&book[i]==0){book[i]=1;flag=1;for(j=1;j<=m;j++){if(i==one[j])degree[two[j]]--;}  }if(flag){k++;if(k<n)printf("%d ",i);else if(k==n) {printf("%d\n",i);break;}i=0;        }   }}return 0;
}

E - 确定比赛名次(拓补排序)相关推荐

  1. 【BZOJ3036】绿豆蛙的归宿 拓补排序+概率

    [BZOJ3036]绿豆蛙的归宿 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度. ...

  2. 奖金(拓补排序的应用)

    谁应该高谁的入度++,并记录下谁比低的高(低的得出度),所以入度为零的就是最低的(好不公平),找出所有最低的,将他们算作一层,奖金++(算是拓补排序吧) #include<cstdio> ...

  3. HDU4324 - Triangle LOVE 拓补排序

    HDU4324 - Triangle LOVE : http://acm.showproblemhdu.edu.cn/.php?pid=4324 标准的拓补排序,上代码 : #include < ...

  4. leetcode *210. 课程表 II(拓补排序)(2020.5.17)

    [题目]*210. 课程表 II 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们 ...

  5. 51nod-生产口罩(拓补排序+DP)by zyz

    题目:生产口罩 链接:http://class.51nod.com/Classes/Problem.html#courseProblemId=1718&classId=129 //注:题目来自 ...

  6. Aov网络与拓补排序的实现

    测试的节点分布如下: 测试代码如下: /** 拓补排序的实现,使用邻接链表存储有向图 */ #include <iostream> #include <cstdio> #inc ...

  7. 每日一题30:拓补排序

    问题描述 所谓拓补排序就是确定图中节点的一种顺序,使得某些在别的节点访问之前不能访问到的节点排在后面.所以该算法的核心是每一步选择一个没有入度的节点,因为没有入度意味着该节点没有前驱,得到一个节点后, ...

  8. 士兵排队问题(拓补排序)(附简要拓补排序思想及算法)

    题目描述 有N个士兵(1<=N<=100),编号依次为1,2,...,N.队列训练时,指挥官要把士兵从高到矮排成一行,但指挥官只知道"1 比2 高,7 比 5高"这样的 ...

  9. 后缀自动机求多个串的最长公共子串+拓补排序讲解+LCS2 - Longest Common Substring II

    网上所有关于后缀自动机拓补排序的文章,都默认读者会拓补排序,简直了. 后缀自动机的拓补排序,就是按照长度进行排序,在进行特定操作的时候,通过较长的后缀来更新较短的后缀.那么也就是通过拓补排序中排名靠后 ...

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

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

最新文章

  1. OnsenUI 前端框架(三)
  2. bash给脚本加进度条_进度条——shell脚本实现
  3. hashmap储存有向图_如何在Rust中构建向量的HashMap?
  4. Codeforces第一次rated比赛
  5. 如何构建一套高性能、高可用性、低成本的视频处理系统?
  6. 【深度学习】——梯度下降优化算法(批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Adam)
  7. 前端学习(1393):多人管理项目13加密实现
  8. LeetCode 218. 天际线问题(multiset优先队列)*
  9. zip unzip命令行_Linux / Unix中的Zip和Unzip命令
  10. bzoj 相似回文串 3350 3103 弦图染色+manacher
  11. 微信小程序云开发教程-分页查询
  12. DB2分区表删除和添加分区
  13. 图像标注工具labelImg使用方法
  14. IDEA导入项目后报错缺失jar包
  15. 互联网日报 | 中国移动香港实现5G独立组网;嫦娥五号顺利进入环月轨道;钟慧娟成全球白手起家女首富...
  16. Docker 安装 CentOS7
  17. NetSpeed--网速检测
  18. 20P27 Premiere预设70种超酷电影级白天黑夜调色预设模板
  19. 计算机毕业设计基于asp.net的旅游网站
  20. 【附源码】计算机毕业设计java智慧灭火器管理系统设计与实现

热门文章

  1. 关于Oracle用sqlldr导入限制值长度大于255问题解决方法
  2. 581. Shortest Unsorted Continuous Subarray
  3. Oracle USE_LARGE_PAGES初始化参数
  4. 使用PS创造非凡动物形象
  5. 基于Vue.js 2.x系列 + Element UI + RBAC/AUTH权限 的响应式后台管理系统
  6. 关于Spring Cloud Netflix
  7. WebSocket+HTML5实现在线聊天室
  8. 雅虎卖身不影响梅耶尔赚钱 她总薪酬2.2亿美元
  9. 《Cisco安全防火墙服务模块(FWSM)解决方案》——2.6 硬件架构
  10. eclipse提示打不开java虚拟机