图论--拓扑排序--HDU-1285确定比赛名次
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 <cstdio>
#include <cstring>
#define MAXN 517
int G[MAXN][MAXN];   //路径
int in_degree[MAXN]; //入度
int ans[MAXN];
int n, m, x, y;
int i, j;
void toposort()
{
    for (i = 1; i <= n; i++) //从最小的开始寻找,
    {                        //这样保证了有多个答案时序号小的先输出
        int k = 1;
        while (in_degree[k] != 0) //寻找入度为零的点
            k++;
        ans[i] = k;
        in_degree[k] = -1;
        //更新为-1,后边检测不受影响,相当于删除节点
        for (int j = 1; j <= n; j++)
        {
            if (G[k][j])
                in_degree[j]--; //相关联的入度减1
        }
    }
}
void init()
{
    memset(in_degree, 0, sizeof(in_degree));
    memset(ans, 0, sizeof(ans));
    memset(G, 0, sizeof(G));
}
int main()
{
    while (~scanf("%d%d", &n, &m))
    {
        init();
        for (i = 0; i < m; i++)
        {
            scanf("%d%d", &x, &y);
            if(G[x][y]==0) in_degree[y]++;
            G[x][y] = 1;
        }
        toposort();
        for (i = 1; i < n; i++)
            printf("%d ", ans[i]);
        printf("%d\n", ans[n]);
    }
    return 0;
}
												
											图论--拓扑排序--HDU-1285确定比赛名次的更多相关文章
- ACM:   HDU 1285 确定比赛名次 - 拓扑排序
		
HDU 1285 确定比赛名次 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
 - HDU.1285 确定比赛名次 (拓扑排序 TopSort)
		
HDU.1285 确定比赛名次 (拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 只不过这道的额外要求是,输出字典序最小的那组解.那么解决方案就是 ...
 - 拓扑排序 - hdu 1285(普通和优先队列优化)
		
2017-09-12 19:50:58 writer:pprp 最近刚开始接触拓扑排序,拓扑排序适用于:无圈图的顶点的一种排序, 用来解决有优先级别的排序问题,比如课程先修后修,排名等. 主要实现:用 ...
 - 正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)
		
确定比赛名次 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
 - hdu 1285 确定比赛名次  拓扑排序
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛 ...
 - HDU 1285 确定比赛名次(拓扑排序模板)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285 题目大意:有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行 ...
 - [ACM] hdu 1285 确定比赛名次 (拓扑排序)
		
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
 - HDU 1285 确定比赛名次(拓扑排序)题解
		
Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...
 - HDU 1285 确定比赛名次(简单拓扑排序)
		
题目链接: 传送门 确定比赛名次 Time Limit: 1000MS Memory Limit: 65536K Description 有N个比赛队(1 Input 输入有若干组,每组中的第 ...
 - HDU 1285 确定比赛名次【字典序最小的拓扑排序 + 优先队列】
		
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
 
随机推荐
- 将wxpy的登录二维码放到网页上登录
			
from flask import Flask, Response from flask.views import MethodView from threading import Thread fr ...
 - C++ namespace 命名空间
			
namespace即"命名空间",也称"名称空间" 那么这个 "名称空间" 是干啥的呢? 我们都知道,C/C++中的作用域可以由一个符号 { ...
 - Linux 任务管理篇(一)
			
查看网络的联机状态 netstat -a 查看后台执行的程序 ps -aux 将内存中的数据快速写入到硬盘中 sync
 - iOS岗位招聘标准水涨船高,五年iOS程序员表示面试太难了
			
人才济济的iOS开发者,你凭什么脱颖而出? 与岗位要求相去甚远,如何挑战极限? 想去心怡公司,如何马到成功? 那么,你的绝招是什么呢? 在这个iOS岗位供不应求的市场,对iOS开发者对要求日益增长,面 ...
 - python3(二十二) oop
			
""" 面向对象编程 """ __author__ = 'shaozhiqi' # 面向对象的程序设计把计算机程序视为一组对象的集合,而每个 ...
 - 大数据及hadoop简要概念
			
大数据 大数据简要概念 指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合.需要新处理模式,才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产. 大数据作 ...
 - tf.train.MomentumOptimizer 优化器
			
tf.train.MomentumOptimizer( learning_rate, momentum, use_locking=False, use_nesterov=False, name='Mo ...
 - yzmsb_test.py
			
识别诺诺金服页面的验证码,并自动登录到后台. #导包 from selenium import webdriver from PIL import Image, ImageDraw from time ...
 - java多线程3:原子性,可见性,有序性
			
概念 在了解线程安全问题之前,必须先知道为什么需要并发,并发给我们带来什么问题. 为什么需要并发,多线程? 时代的召唤,为了更充分的利用多核CPU的计算能力,多个线程程序可通过提高处理器的资源利用率来 ...
 - BUUOJ [WUSTCTF2020]朴实无华
			
[WUSTCTF2020]朴实无华 复现了武科大的一道题/// 进入界面 一个hack me 好吧,直接看看有没有robot.txt 哦豁,还真有 好吧 fAke_f1agggg.php 看了里面,然 ...