zoukankan      html  css  js  c++  java
  • ACM: HDU 1285 确定比赛名次

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

    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)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它.
    (2)从网中删去该顶点,并且删去从该顶点发出的全部有向边.
    (3)重复上述两步,直到剩余的网中不再存在没有前驱的顶点或者所有的点都排序完毕为止.
    
    AC代码:
    /*/
    #include"algorithm"
    #include"iostream"
    #include"cstring"
    #include"cstdlib"
    #include"string"
    #include"cstdio"
    #include"vector"
    #include"cmath"
    #include"queue"
    using namespace std;
    #define memset(x,y) memset(x,y,sizeof(x))
    #define memcpy(x,y) memcpy(x,y,sizeof(x))
    #define MX 1005
    
    int map[MX][MX];
    int indegree[MX];
    int print[MX];
    
    int main() {
    	int n,m,st,ed,cnt;
    	while(~scanf("%d%d",&n,&m)) {
    		memset(map,0);
    		memset(indegree,0);
    		memset(print,0);
    		for(int i=0; i<m; i++) {
    			scanf("%d%d",&st,&ed);
    			if(!map[st][ed]) {
    				map[st][ed]++;
    				indegree[ed]++;
    			}
    		}
    		for(cnt=1; cnt<=n;) {
    			int i;
    			for(i=1; i<=n; i++) {
    				if(!indegree[i])break;
    			}
    			indegree[i]=-1;
    			print[cnt++]=i;
    			int j;
    			for(j=1; j<=n; ++j) {
    				if(map[i][j]>0) {
    					indegree[j]--;
    					map[i][j]=-1;
    				}
    			}
    		}
    		int first=1;
    		for(int i=1; i<cnt; i++) {
    			if(first)first=0;
    			else printf(" ");
    			printf("%d",print[i]);
    		}
    		puts("");
    	}
    	return 0;
    }
    

      




  • 相关阅读:
    用户故事——老师
    用户故事——学生
    用户故事——管理员
    WebStorm 2018 最新激活码 license server
    vue cli 4.3.1版本脚手架 新人请看系列
    iviewtable表格数据 录音播放下载
    git修改远程仓库地址
    git上传提交个人心得
    layui 数据拆分 重组数据
    日志
  • 原文地址:https://www.cnblogs.com/HDMaxfun/p/5741918.html
Copyright © 2011-2022 走看看