HDOJ -- 1285 确定比赛名次
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Input
Output
其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。
Sample Input
4 3 1 2 2 3 4 3
Sample Output
1 2 4 3
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int map[505][505];//判断两支队伍是否进行了比赛
int n,indegree[505];//记录该队伍的前驱个数
int queue[505];//记录所有队伍的排名
void tuopu(){int top;//暂存当前第一名 int k=0;//用来记录名次 for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(indegree[j]==0){top=j;//入度(前驱)为0的点即第一名 break;}}queue[k++]=top;//保存当前第一名后,下一个“第一”就是K+1 indegree[top]=-1;//第一名入保存后,删除for(int j=1;j<=n;j++){if(map[top][j])indegree[j]--;//每一项的入度都相应-1 }}for(int i=0;i<n-1;i++)printf("%d ",queue[i]);printf("%d\n",queue[n-1]);//输出格式
}
int main(){int a,b,m;while(~scanf("%d%d",&n,&m)){memset(indegree,0,sizeof(indegree));memset(map,0,sizeof(map));for(int i=0;i<m;i++){scanf("%d%d",&a,&b);if(map[a][b]==0){//这个判断是为了防止数据中有重复! map[a][b]=1;//记录对战的队伍 indegree[b]++;//战败队伍的入度+1 }}tuopu();}return 0;
}
HDOJ -- 1285 确定比赛名次相关推荐
- hdoj 1285 确定比赛名次 【拓扑排序】
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDOJ 1285 确定比赛名次(拓扑排序)
2018-5-23 简单的拓扑排序,我用的是优先队列,按照字典序排序,将入度为零的点放入队列, 则直接按照字典序排序. 需要注意的是:如果有两个重复的数据,则相应的入度值就不应该加一了. #inclu ...
- HDU 1285 确定比赛名次 拓扑排序(邻接矩阵 邻接表
确定比赛名次 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description ...
- HDU 1285 - 确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 拓扑排序杭电 1285确定比赛名次
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- [ACM] hdu 1285 确定比赛名次 (拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 杭电1285确定比赛名次
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- hdu 1285 确定比赛名次
//拓扑排序裸题,题目要求按编号从小到大输出,要换一种思维去思考 //按照数据结构课本的算法,建立邻接表,用栈实现.初始化先将入度为0的顶点入栈,然后以栈顶顶点为准,先将栈顶顶点出栈输出它的信息,然后 ...
- HDU 1285:确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
最新文章
- 185页深度报告 扒一扒AI金融的老底【附下载】
- 学习Python3:201701030
- 搭建基于Docker社区版的Kubernetes本地集群
- Spring Integration完整示例
- linux apache中文名称图片,Apache、NGINX支持中文URL图片、文件名的终极解决方案
- 【Python CheckiO 题解】First Word
- 影响mysql导入效率的参数_extended-insert对mysqldump及导入性能的影响
- 【云笔记搭建】Visual Code + Github仓库 + Git
- Vulkan Nvidia 驱动 VK_ERROR_LAYER_NOT_PRESENT
- C语言12之什么是字符串类型?
- 讲解VR全景拍摄相机光圈、感光度和快门的作用
- A/B Test 使用指南
- 新松机器人袁_中科新松许小刚:智能协作机器人是中国机器人产业发展新节点...
- 接口测试方法论——WebSocket一点通
- 线上支付对接(支付宝篇)
- 检查两个时间段是否有时间重叠(允许重叠一部分时间不算重叠)
- 深度学习数学基础之激活函数与导数
- 计算几何-Ang-Rad-Vector
- CHIL-SQL-SELECT INTO 语句
- Linux内核MTD子系统七之Flash 存储器接口标准:CFI和JEDEC