确定比赛名次

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
                                                                                                                          Total Submission(s): 3141    Accepted Submission(s): 1128

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
简单拓扑排序问题,问题在于选取入度为零的点。
代码如下:
#include <stdio.h>
#define MAX 505
#include <string.h>int map[MAX][MAX], N, M, hash[MAX];void update( int x )
{for( int i= 1; i<= N; ++i ){map[x][i]= 0;}}void Tsort(  )
{for( int i= 1; i<= N; ++i ){for( int j= 1; j<= N; ++j ){if( hash[j] ){continue;}int sign= 1;for( int k= 1; k<= N&& sign; ++k ){if( map[k][j] ){sign= 0;break;}}if( sign ){printf( i== 1? "%d": " %d", j );hash[j]= 1;update( j );break;}}}puts( "" );
}int main(  )
{while( scanf( "%d%d", &N, &M )!= EOF ){memset( map, 0, sizeof( map ) );memset( hash, 0, sizeof( hash ) );for( int i= 1; i<= M; ++i ){int x, y;scanf( "%d%d", &x, &y );map[x][y]= 1;}Tsort(  );}return 0;
}

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

  1. HDU 1285 确定比赛名次 拓扑排序(邻接矩阵 邻接表

    确定比赛名次 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description ...

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

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

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

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

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

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

  5. hdu 1285 确定比赛名次

    //拓扑排序裸题,题目要求按编号从小到大输出,要换一种思维去思考 //按照数据结构课本的算法,建立邻接表,用栈实现.初始化先将入度为0的顶点入栈,然后以栈顶顶点为准,先将栈顶顶点出栈输出它的信息,然后 ...

  6. HDU - 128 确定比赛名次(基于有向无环图(GAD)的排序--拓扑排序)

    题目链接:https://vjudge.net/contest/325616#problem/A 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N,进行比赛,比赛结束 ...

  7. HDU 1285--确定比赛名次【拓扑排序 amp;amp; 邻接表实现】

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

  8. 拓扑排序杭电 1285确定比赛名次

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

  9. hdoj 1285 确定比赛名次 【拓扑排序】

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

最新文章

  1. Centos源码安装Cmake
  2. 转载——C语言中float,double类型,在内存中的结构(存储方式)
  3. 斐波纳契数列递归和非递归算法
  4. Photoshop简单另类方法给黑白照片上色
  5. vc 代码检查工具_C++网络安全入侵检测技术模块及源程序代码
  6. stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案
  7. php 空二位数组,php对二维数组进行相关操作(排序、转换、去空白等),php二维数组_PHP教程...
  8. SQLSERVER索引汇总
  9. [hgoi#2019/2/16t1]math
  10. Dedecms文件夹目录解释完整版
  11. H.264码流解析 一个SPS的nalu及获取视频的分辨率
  12. VS+Qt报错无法解析的外部符号
  13. 6轴并联机器人示教器
  14. android dex2oat 编译,dex2oat代码阅读笔记
  15. rtklib postpos 梳理(以单点定位为例)
  16. 卡方线性趋势检验_趋势卡方检验
  17. 实体消歧 Entity Disambiguiation
  18. win10 开机黑屏时间长 联想y470解决方案
  19. 【Java】01 初识 Java
  20. 计算机程序员笔试题,历年计算机软考程序员笔试真题及答案

热门文章

  1. idea缩写快捷键_idea快捷键大全
  2. 基于RT-Thread开发智能视觉组智能车 - 温州大学 - 春华秋实
  3. 有互感的电感的串并联
  4. 一个古老而优雅的电子线路
  5. 什么数字万用表可以测量噪声?
  6. C语言数据段分类,13.2.1 段的分类
  7. hive窗口函数分组排序并取第一个值_Hive(七)Hive分析窗口函数
  8. python中国地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果...
  9. 自建通用Makefile 分享
  10. matlab 怎么与运算,求助如何用MATLAB计算VAR和Expected shortfall