HDOJ--1285--确定比赛名次
确定比赛名次
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 17172 Accepted Submission(s): 6820
。
,N进行比赛,比赛结束后,裁判委员会要将全部參赛队伍从前往后依次排名。但如今裁判委员会不能直接获得每一个队的比赛成绩,仅仅知道每场比赛的结果。即P1赢P2,用P1。P2表示。排名时P1在P2之前。
如今请你编程序确定排名。
输出时队伍号之间有空格,最后一名后面没有空格。
其它说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前。输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。
4 3
1 2
2 3
4 3
1 2 4 3
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int map[510][510];//前驱关系
int indegree[510];//前驱数量
int queue[510];//保存拓扑序列
void topo(int n)
{
int i,j,m,t=0;
for(j=0;j<n;++j){
for(i=1;i<=n;++i){
if(indegree[i]==0){//找出前驱数量为零的的点即每次找到第一名
m=i;break;
}
}
queue[t++]=m;indegree[m]=-1;//将第一名的前驱数量设为-1 ,queue用来记录顺序。
for(i=1;i<=n;++i){//第二步将前驱中含有第一名的点前驱数量减1
if(map[m][i])indegree[i]--;
}
}
printf("%d",queue[0]);//输出拓扑序列
for(i=1;i<n;++i){
printf(" %d",queue[i]);
}
printf("\n");
}
int main()
{
int n,m,i,j,a,b;
while(scanf("%d%d",&n,&m)!=EOF){
memset(indegree,0,sizeof(indegree));//初始化
memset(map,0,sizeof(map));
for(i=0;i<m;++i){
scanf("%d%d",&a,&b);
if(map[a][b]==0){
map[a][b]=1;indegree[b]++;//第一步记录关系和点的前驱数量
}
}
topo(n);//调用拓扑排序
}
return 0;
}
HDOJ--1285--确定比赛名次的更多相关文章
- hdoj 1285 确定比赛名次【拓扑排序】
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdoj 1285 确定比赛名次 【拓扑排序】
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDOJ 1285 确定比赛名次(拓扑排序)
Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...
- hduoj 1285 确定比赛名次
http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- ACM: HDU 1285 确定比赛名次 - 拓扑排序
HDU 1285 确定比赛名次 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- 正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)
确定比赛名次 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- HDU.1285 确定比赛名次 (拓扑排序 TopSort)
HDU.1285 确定比赛名次 (拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 只不过这道的额外要求是,输出字典序最小的那组解.那么解决方案就是 ...
- hdu oj 1285 确定比赛名次
hdu oj 1285 确定比赛名次 题目: 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 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 ...
随机推荐
- git tag管理
操作 实例 创建标签 git tag -a V1.2 -m 'WebSite version 1.2' 查看标签 git tag / git show V1.2 远程推送 git push origi ...
- 网页内容爬取:如何提取正文内容 BEAUTIFULSOUP的输出
创建一个新网站,一开始没有内容,通常需要抓取其他人的网页内容,一般的操作步骤如下: 根据url下载网页内容,针对每个网页的html结构特征,利用正则表达式,或者其他的方式,做文本解析,提取出想要的正文 ...
- Mantis 配置与使用学习
转载自:http://blog.csdn.net/xifeijian/article/category/1429687
- c++写入txt
用ofstream 输出流,#include <fstream> ofstream outf; outf.open("abc.txt");outf<<123 ...
- CAD得到所有组名(网页版)
主要用到函数说明: _DMxDrawX::GetAllGroupName 得到所有组名. js代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- oracle数据库子查询的结果需要使用多次解决办法
with c as (select a.trandt,sum(a.tranam) tranam from tran a group by a.trandt )--将子查询抽取出来,以后可以直接用.该方 ...
- RQNOJ #204 特种部队 sol
link 首先我们可以注意到一个非常无聊的性质.先一直向右边走,然后折返回来向左边走,本质上与先向右走,然后向左走,再向右走这样循环走完整个路程是一致的. 根据这个性质,我们可以将向左走与向右走两个东 ...
- python3.x Day3 集合
python中的集合 集合定义:一个无序的去重的数据集,主要特性就是去重和关系测试,关系测试不改变集合中的数据值 定义集合:set(list) 可以将list转化为集合set 示例: 定义一个集合:l ...
- Python爬虫入门教程第七讲: 蜂鸟网图片爬取之二
蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度. 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文 ...
- importdata-- matlab
source file: test.dat *************************** Day1 Day2 Day3 Day4 Day5 Day6 Day795.01 76.2 ...