NYOJ 496 [巡回赛-拓扑排序]
链接:click here
题意:
巡回赛
- 描写叙述
- 世界拳击协会(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 - 来源
【解题思路】:
DFS实现拓扑排序
代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn =30;
int t,n,m,V,i,j;
int g[maxn],topo[maxn],G[maxn][maxn];
bool DFS(int u) //DFS实现拓扑排序
{
g[u] = -1; //開始訪问该顶点
for(int v=0; v<V; v++)
if(G[u][v])
{
if(g[v]<0) return false; //c[v]=-1代表正在訪问该定点(即递归调用DFS(u)正在帧栈中。尚未返回)
else if(g[v]==0&&DFS(v)==0)return false;//(c[v]==0 && DFS(v)==false即当前顶点没有后即顶点时。
}
g[u]=1; //訪问结束
topo[--t]=u;
return true;
}
bool AOV_toposort()
{
t=V;
memset(g,0,sizeof(g));
for(int u = 0; u < V; u++)
if(!g[u])
if(!DFS(u))return false;
return true;
}
int main()
{
//freopen("1.txt","r",stdin);
//freopen("2.txt","w",stdout);
int nca,i,m;
char a[2],b[2];
cin>>nca;
while(nca--)
{
memset(G,0,sizeof(G));
cin>>V>>m;
for(i = 0; i < m; i++)
{
cin>>a>>b;
G[(a[0]-'A')][(b[0]-'A')] = 1;
}
if(AOV_toposort())
{
bool flag= true;
for(i=0; i<V-1; i++)
if(!G[topo[i]][topo[i+1]])
{
flag=false;
break;
}
if(flag)
{
for(i=0; i<V; i++)
printf("%c",topo[i]+'A');
puts("");
}
else
puts("No Answer");
}
else
puts("No Answer");
}
return 0;
}
NYOJ 496 [巡回赛-拓扑排序]的更多相关文章
- NYOJ 349 Sorting It All Out (拓扑排序 )
题目链接 描述 An ascending sorted sequence of distinct values is one in which some form of a less-than ope ...
- nyoj 349 (poj 1094) (拓扑排序)
Sorting It All Out 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 An ascending sorted sequence of distinct ...
- POJ--1094--Sorting It All Out||NYOJ--349--Sorting It All Out(拓扑排序)
NYOJ的数据水一点,POJ过了是真的过了 /* 拓扑排序模板题: 每次输入都要判断有环与有序的情况,如果存在环路或者已经有序可以输出则跳过下面的输入 判断有序,通过是否在一个以上的入度为0的点,存在 ...
- nyoj--496--巡回赛(拓扑排序)
巡回赛 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 世界拳击协会(WBA)是历史最悠久的世界性拳击组织,孕育了众多的世界冠军,尤其是重量级,几乎造就了大家耳熟能详的所 ...
- 算法与数据结构(七) AOV网的拓扑排序
今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...
- 有向无环图的应用—AOV网 和 拓扑排序
有向无环图:无环的有向图,简称 DAG (Directed Acycline Graph) 图. 一个有向图的生成树是一个有向树,一个非连通有向图的若干强连通分量生成若干有向树,这些有向数形成生成森林 ...
- 【BZOJ-2938】病毒 Trie图 + 拓扑排序
2938: [Poi2000]病毒 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 609 Solved: 318[Submit][Status][Di ...
- BZOJ1565 [NOI2009]植物大战僵尸(拓扑排序 + 最大权闭合子图)
题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=1565 Description Input Output 仅包含一个整数,表示可以 ...
- 图——拓扑排序(uva10305)
John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...
随机推荐
- 00C#
C# C#(读作“See Sharp”)是一种简单.现代.面向对象且类型安全的编程语言.C# 起源于 C 语言家族,因此,对于 C.C++ 和 Java 程序员,可以很快熟悉这种新的语言.C# 已经分 ...
- JFinal怎么更改项目服务的端口
如图所示,运行时启动的端口是80,现在将它改成801: 可以在Debug configuration 或 Run configuration 弹出的窗口中配置,方法右击项目>properties ...
- java 解析json格式数据
有时候可能会用到json格式进行数据的传输,那么怎么把接收到的数据解析出来呢? 下面介绍两种解析json数据的方法: 1.通过谷歌的Gson来进行解析: json数据:sTotalString = { ...
- [Python3网络爬虫开发实战] 1.7.1-Charles的安装
Charles是一个网络抓包工具,相比Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具. 1. 相关链接 官方网站:https://www.charles ...
- PHP实现QQ第三方登录的方法
前言: PHP实现QQ快速登录,罗列了三种方法 方法一:面向过程,回调地址和首次触发登录写到了一个方法页面[因为有了if做判断], 方法二,三:面向对象 1.先调用登录方法,向腾讯发送请求,2.腾讯携 ...
- Tomcat8.0 JDK1.8 的详细配置 Win10
官网下载 先安装JDK以及JRE 之后安装Tomcat jdk配置环境变量: 用户变量:path:C:\Program Files\Java\jdk1.8.0_161\bin ( jdk安装的 ...
- stark组件之显示页面搭建(四)
页面搭建包括第一如何获取前端传过来的数据,第二如何在前端渲染出对应标签. 一.后台获取数据并进行处理 在路由系统中,每一个路由都对应着一个处理函数,如下所示: def wrapper(self, fu ...
- fielddata breaker与cache size
breaker的估算,是根据语句以及上层的结果数,加上固定的值,不准确. cache.size是cache到结果的size,准确. 所以,配置breaker不能拦截占用内存的聚合查询,而配置cache ...
- Blend 混合
Shader 中的混合 Blend Off :不混合 Blend SrcFactor DstFactor :SrcFactor 是源系数,DstFactor是目标系数,源系数是由片段着色器计算出来 ...
- 【bzoj3747】[POI2015]Kinoman - 线段树(经典)
Description 共有m部电影,编号为1~m,第i部电影的好看值为w[i]. 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部. 你可以选择l,r(1<=l< ...