nyoj496巡回赛-拓扑排序-拓扑序列
来源:互联网 发布:eva分析软件 编辑:程序博客网 时间:2024/06/11 18:05
巡回赛
时间限制:1000 ms | 难度:3
- 描述
- 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”,若存在则按排名从高至低输出拳手的名字。
- 样例输入
34 4A BA CB CC D4 4A BA CB DC D3 3A BB AA C
- 样例输出
ABCDNo AnswerNo Answer
- 题目描述有删减,挺普通的一题,看了一下拓扑排序就应该可以想出解决办法。
- 值得注意的是 要只有唯一一个拓扑序列的才符合要求,如果有多个拓扑序列也要输出No Answer。
- AC代码:
#include <stdio.h>#include <string.h>int main() {char map[26][26], mark[26];int T, n, m;char s[27];scanf("%d", &T);while(T--) {int i, count = 0, j, k = 0;char x, y, fag = 0;memset(map,0,sizeof(map));memset(mark, 0, sizeof(mark));scanf("%d%d\n", &n, &m);for(i = 0; i < m; i++) {scanf("%c %c", &x, &y);getchar();map[y-65][x-65] = 1;}while(count < n && fag == 0) { for(i = 0; i < n; i++) { if(mark[i] == 1) continue; for(j = 0; j < n; j++) if(map[i][j] == 1) break; if(j == n) { s[k++] = i+65; mark[i] = 1; count++; break; } } for(i = i+1; i < n; i++) { if(mark[i] == 1) continue; for(j = 0; j < n; j++) if(map[i][j] == 1) break; if(j == n) { fag = 1; break; } } if(fag == 0) { j = s[k-1]-65; for(i = 0; i < n; i++) map[i][j] = 0; } }s[k] = 0; if(fag == 1) printf("No Answer\n"); else puts(s);}return 0;}
1 0
- nyoj496巡回赛-拓扑排序-拓扑序列
- 【拓扑排序】nyoj496 巡回赛
- 拓扑排序--巡回赛
- 496 巡回赛【拓扑排序,唯一的拓扑序列】
- 【巡回赛 496 拓扑排序】
- NYOJ 巡回赛 【拓扑排序】
- nyoj-496-巡回赛--拓扑排序
- NYOJ 496 巡回赛 拓扑排序
- 巡回赛-经典的拓扑排序
- NYOJ 496 [巡回赛-拓扑排序]
- nyoj--496--巡回赛(拓扑排序)
- NYOJ 496题巡回赛(拓扑排序)
- 拓扑序列以及排序
- 拓扑序列
- 拓扑序列
- 拓扑排序之变量序列代码
- 拓扑排序之变量序列算法分析
- 拓扑排序(猜序列,LA 4255)
- 网易面试题之 牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t, * 根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序
- JS将人民币小写金额转换为大写
- SurfaceView 闪屏问题
- 网易面试题之 牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因, * 其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,
- linux命令大全——X WINDOWS SYSTEM
- nyoj496巡回赛-拓扑排序-拓扑序列
- 在java中调用weka聚类方法并显示相应的类标签+weka中创建arff数据
- Delphi自带的字符串分割函数Split
- 一般过去时
- unity不规则按钮透明点击偏移问题
- 分割字符串 ExtractStrings
- Unity 安卓手机 AssetBundle.LoadFromFile() SerializedFile占用大量内存
- Java复习总结——框架篇(三)
- 造轮子去了