确定比赛名次 杭电ACM集训队训练赛题

2024-01-10 08:18

本文主要是介绍确定比赛名次 杭电ACM集训队训练赛题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://acm.hdu.edu.cn/showproblem.php?pid=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
这道题是tp排序的入门。。。。

代码:

#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
#define N 505
vector<int> v[N];
int Next[N];
int in[N];
int n,m,k;
void tp()
{   k=0;priority_queue<int,vector<int>,greater<int> >q;for(int i=1;i<=n;i++)if(!in[i])   q.push(i);while(!q.empty()){       int t=q.top();q.pop();Next[k++]=t;for(int i=0;i<v[t].size();i++){     int m=v[t][i];if(in[m]==1) q.push(m);else in[m]--;  }   }
}
int main()
{   while(cin>>n>>m){    for(int i=0;i<=n;i++){ in[i]=0;v[i].clear();Next[i]=-0;}for(int i=0;i!=m;i++){     int a,b;cin>>a>>b;v[a].push_back(b);in[b]++;}tp();for(int i=0;i<k-1;i++)cout<<Next[i]<<" ";cout<<Next[k-1]<<endl;}return 0;
}



这篇关于确定比赛名次 杭电ACM集训队训练赛题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590143

相关文章

如何确定公共转录组数据集的来源性别

太长不看版: 文献报道XIST和RPS4Y1是区分性别的两个高可信度的标记基因,因此你没有必要去用其他性染色体上的基因去确定数据集的性别。 不仅仅是在使用公共的单细胞转录组数据,其实早在公共芯片数据或者RNA-seq数据挖掘中,就有人在考虑一个问题,这个数据的元信息作者会不会搞错了呢? 以性别为例,我们很容易想到表达Y染色体上基因数据肯定是男性,但是我们也知道基因也不是任何时刻都表达,所以如

「单细胞转录组系列」如何可靠地确定公共数据集的性别

太长不看版: 文献报道XIST和RPS4Y1是区分性别的两个高可信度的标记基因,因此你没有必要去用其他性染色体上的基因去确定数据集的性别。 不仅仅是在使用公共的单细胞转录组数据,其实早在公共芯片数据或者RNA-seq数据挖掘中,就有人在考虑一个问题,这个数据的元信息作者会不会搞错了呢? 以性别为例,我们很容易想到表达Y染色体上基因数据肯定是男性,但是我们也知道基因也不是任何时刻都表达,所以如

c编程:乒乓球比赛,找出谁和谁对打

//两个乒乓球队进行比赛,各出三人。甲队为A,B,C三人,乙队为X,Y,Z三人。已抽签决定//比赛名单,有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,编程找出三对选手的对手名单。?#include<stdio.h>int main(){char i,j,k;//i,j,k分别代表A,B,Cfor(i='X';i<='Z';i++){for(j='X';j<='Z';j++)

【会议征稿,ACM出版】2024年图像处理、智能控制与计算机工程国际学术会议(IPICE 2024,8月9-11)

2024年图像处理、智能控制与计算机工程国际学术会议(IPICE 2024)将于2024年8月9-11日在中国福州举行。本届会议由阳光学院、福建省空间信息感知与智能处理重点实验室、空间数据挖掘与应用福建省高校工程研究中心联合主办。 会议主要围绕图像处理、智能控制与计算机工程等研究领域展开,旨在为从事计算机等相关研究的专家学者提供一个交流科研成果和前沿技术的平台,了解学术发展趋势,拓宽研究思路

杭电 2044 一只小蜜蜂...

http://acm.hdu.edu.cn/showproblem.php?pid=2044 f[1]表示相差一时的路线数 #include<stdio.h>int main(){int n,a,b,i;__int64 f[50];scanf("%d",&n);f[1] = 1;f[2] = 2;for(i = 3;i < 50;i++)f[i] = f[i-1]+f[i-2]; wh

杭电ACM hdu 2110 Crisis of HDU 解题报告(母函数)

Problem Description 话说上回讲到HDU大战东洋小苟,结果自然是中方大胜,这一战也使得海东集团在全球同行业中的地位更加巩固。随着集团的发展,很多创业时期的元老逐步功成身退,先是8600移民海外,然后是linle夫妇退隐山林,逐渐的,最初众多的元老只剩下XHD夫妇和Wiskey三人了。 到了2020年,因为扩张过度加上老鼠数量逐年减少,公司的发展遇到了前所未有的危机,此时集团已经

杭电ACM hdu 2082 找单词 解题报告(母函数)

Problem Description 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如

杭电ACM hdu 2079 选课时间 解题报告(母函数)

Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)   Input 输入数据的第一行是一个数据T,表示有T组数据。 每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。 接着有k行,每行有两个整数a(1 <= a <= 8),b

ICPC2018 徐州区域赛 比赛报告

ICPC2018 徐州区域赛 比赛报告 Sunder-杜逸闲 关于本比赛 本场比赛于2018.10.28在徐州由中国矿业大学承办,本人所在队伍Sunder – 由杜逸闲,裘家浩,周浩博组成的队伍 – 拿到了14/289金牌。 比赛过程 开场杜逸闲从后往前看,裘家浩从中间开始看,周浩博从前往后看题。 过了20分钟才有人过A题,杜逸闲开始读A题冗长的题面,发现A题是较简单题。 通过A之后有人

数据结构与算法笔记:高级篇 - 拓扑排序:如何确定代码源文件的编译依赖关系?

概述 从本章开始,就开始进入高级篇。相对基础篇,高级篇涉及的知识比较零散,不是太系统。所以,我会围绕一个实际软件开发的问题,在阐述具体解决方法的过程中,将涉及的知识点给你详细讲解出来。 所以,相较于基础篇 “开篇问题 - 知识讲解-总结” 这样的文章结构,高级篇稍作了改变,大致分为这样几个部分:“问题阐述 - 算法解析 - 总结引申”。 现在,我们进入高级篇的第一节,如何确定代码源文件的编译