巡回赛

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
世界拳击协会(WBA)是历史最悠久的世界性拳击组织,孕育了众多的世界冠军,尤其是重量级,几乎造就了大家耳熟能详的所有伟大的拳王。阿里、弗雷泽、福尔曼被称为“70年代重量级拳坛 三巨头”,是当之无愧的拳王,他们的得到的金腰带都刻有 WBA 字样。为庆贺世界拳击协会成立 50 周年,WBA 主席门多萨邀请 N 名拳击手进行了 M 场巡回比赛,每场比赛均可分出胜负,比赛过后组委会要对 N 名选手进行排序,对于每名拳手,必须满足该拳手所战胜过的对手全部排在其后才能对该排名满意。
现给出 M 场比赛的胜负关系,请你帮组委会决定是否能够唯一确定这样的排名,使得所有的拳击手都满意,若能唯一确定则输出最终排名。

输入
第一行给出测试数据的组数 T(0<T<30),对于每组测试数据,首先依次给出N(1<=N<=26),M(0<=M<=1000)分别表示拳手数和比赛数,拳手的姓名依次为从 A开始的前 N 个大写字母,接下 M 行给出每场比赛的比赛结果,每行由两个大写字母组成,两者之间有一空格。
如 “A B”则表示在某场比赛中 A 战胜了 B。
输出
对于每组测试,若不存在唯一的排名序列则单行输出“No Answer”,若存在则按排名从高至低输出拳手的名字。
样例输入
3
4 4
A B
A C
B C
C D
4 4
A B
A C
B D
C D
3 3
A B
B A
A C
样例输出
ABCD
No Answer
No Answer

一般的拓扑排序

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int dre[30],map[30][30];
int n,m;
char s[30];
bool flag;
int main()
{int t;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);char o[2],p[2];flag=false;memset(s,'\0',sizeof(s));memset(dre,0,sizeof(dre));memset(map,0,sizeof(map));for(int i=0;i<m;i++){scanf("%s%s",o,p);dre[p[0]-'A']++;map[o[0]-'A'][p[0]-'A']=1;}for(int i=0;i<n;i++){int cnt=0;int k=-1;for(int j=0;j<n;j++){if(dre[j]==0){k=j;cnt++;dre[j]--;}}if(cnt>1) {flag=true;break;}s[i]=k+'A';for(int j=0;j<n;j++)if(map[k][j]==1){dre[j]--;map[k][j]=0;}}if(flag) printf("No Answer\n");else printf("%s\n",s);}return 0;
}

转载于:https://www.cnblogs.com/playboy307/p/5273461.html

nyoj--496--巡回赛(拓扑排序)相关推荐

  1. NYOJ 496 巡回赛 拓扑排序

    巡回赛 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 世界拳击协会(WBA)是历史最悠久的世界性拳击组织,孕育了众多的世界冠军,尤其是重量级,几乎造就了大家耳熟能详的所 ...

  2. nyoj496巡回赛-拓扑排序-拓扑序列

    巡回赛 时间限制:1000 ms | 难度:3 描述 N 名拳击手进行了 M 场比赛,每场赛均可分出胜负,赛后对 N 名选手进行排序,对于每名拳手,必须满足该拳手所战胜过的对手全部排在其后才能对该排名 ...

  3. 拓扑排序[TopologicalSort]

    闲来无事,看到了拓扑排序就学习了一下. 拓扑排序: 算导上说是使用深搜来对有向无环图进行排序,得到一种线性次序.不过深搜的理解还理解不到.估计是深搜学的不怎么样吧! 说说我理解的这个线性次序吧.我认为 ...

  4. 【图论】有向无环图的拓扑排序

    1. 引言 有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环.常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度.拓扑排序是对DA ...

  5. C#实现有向无环图(DAG)拓扑排序

    对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在 ...

  6. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  7. usaco frame up(所有拓扑排序的输出)

    先根据图建图再拓扑排序. /** ID: jinbo wu TASK: frameup LANG:C++ */ #include<bits/stdc++.h> using namespac ...

  8. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  9. C/C++二级指针概念及应用(有向图的邻接表(拓扑排序)、有向网图的邻接表、树的孩子表示)

    目录 一.概述 例1: 例2: 代码: 二.实例 1.有向图的邻接表(拓扑排序) 2.有向网图的邻接表 3.树的孩子表示 一.概述 二级指针:指向指针的指针.一般需要修改地址的时候会用到二级指针. 注 ...

  10. 极小连通子图和极大连通子图_强连通分量与拓扑排序

    前言 由于GacUI里面开始多处用上拓扑排序,我决定把之前瞎JB搞出来的算法换掉,换成个正式的.之前我自己弄了个写起来很简单的算法,然后每一处需要用到的地方我就重新做一遍.当然这样肯定也是不行的,我觉 ...

最新文章

  1. 转,大佬关于虚拟内存与物理内存关系讲解。
  2. 兰州市职称计算机考试地点,兰州2013年职称计算机考试报名等事项的通知
  3. 斯坦福大学深度学习与自然语言处理第一讲:引言
  4. superset docker方式安装
  5. c语言常用算法累加法例题,C语言第三次模拟练习题部分解答.docx
  6. kibana下载安装
  7. Java进阶知识点:协变与逆变
  8. JavaScript基础1
  9. 开心消消乐分析与设计
  10. 智慧工地工人实名制管理整体解决方案
  11. linux实用教程复习题,linux上机复习题(部分答案)
  12. 即时通讯-Netty篇
  13. Verilog实现呼吸灯效果
  14. Win10数字小键盘按键变成方向键怎么办?Win10数字小键盘按键变为方向键解决方法
  15. leetcode零散题汇总
  16. Appium环境搭建和检测
  17. 商务智能与数据挖掘 - 认识数据
  18. 线性时态逻辑ctl_基于决策过程的广义可能性时态逻辑模型检测
  19. 【b站雅思笔记】Charlie有好好学习 - 雅思听力
  20. mysql索引用trie树_数据结构与算法之美【完整版】

热门文章

  1. python发送邮件程序
  2. 计算机学院军训条幅,最新各大高校欢迎新生横幅,确认过眼神,师兄师姐Skr人才。...
  3. MySQL某列增加标注_MySQL 使用CASE表达式给行做标记
  4. centos mysql gui_mysql gui
  5. c# zxing条形码设置密度_C# 中 ZXing.Net 怎样突破 条形码 多识别 数量限制
  6. tomcat与mysql分离部署_apache+tomcat+mysql 实现动静分离
  7. java 读取 dto_DTO 实现 service 和 controller 之间值传递的操作
  8. excel 未能加载文件或程序集 officetoolbar_JavaScript数据透视表dhtmlxPivot,帮助您方便快捷的汇总大型数据集...
  9. 西安工程大学计算机是几本专业,2016年西安工程大学计算机科学与技术(卓越班)专业在陕西录取分数线...
  10. url参数拼接 php,js URL参数的拼接方法比较_javascript技巧