【t075】郁闷的记者
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
你是一个体育报社的记者,你接受到一个艰难的任务:有N支足球队参加足球比赛,现在给你一些比赛的结果,需要你给出各支球
队的排名,从1到N。
以下是给你的一些信息:
(1) 没有平局;
(2) 不同的球队排名不能相同;
(3) 对于所有满足(1<=a),(a小于b),(b<=n),第a名的球队一定可以打败第b名的球队。
给你部分比赛结果,要求给出排名,并且判断是否存在另一种排名方法满足给你的比赛结果。
【数据范围】
30%的数据 (1<=N<=7,1<=M<=15)
60%的数据(1<=N<=100,1<=M<=2000)
【输入格式】
第一行输入N(1<=N<=5000),表示球队的数量,编号为1到N。第二行输入M(1<=M<=100,000),表示给出的比赛场数,接下来M行,每
行两个整数X_i,Y_i,表示X_i能打败Y_i。
【输出格式】
输出包含N+1行,前N行描述球队的排名,第i个数表示第i名的球队,第N+1行包含一个整数,如果为0表示不存在其他的排名方法,否则为1表示还有其他的排名方法。
Sample Input
4
5
1 2
3 1
3 2
3 4
4 1
Sample Output
3
4
1
2
0
Sample Input1
3
2
2 1
2 3
Sample Output1
2
1
3
1
【题目链接】:http://noi.qz5z.com/viewtask.asp?ID=t075
【题解】
拓扑排序;
对于给的关系(x,y)
建一条从x指向y的单向边;
y的入度递增;
然后做拓扑排序;
每次找入度为0的点;
(直接输出)
然后修改它的邻点的入度;(递减1)
如果有一次找到的入度为0的点大于1;
就说明有多个拓扑序;
说明有多个排名;
否则没有;
(平台没有特判,每次输出的时候找标号最小的输出,[斜眼笑])
【完整代码】
#include <cstdio>
#include <vector>
using namespace std;
#define rei(x) scanf("%d",&x)
#define rep1(i,x,y) for (int i = x;i <= y;i++)
const int MAXN = 5e3+100;
int n,m,du[MAXN],yes = 0;
vector <int> g[MAXN];
int main()
{
//freopen("F:\\rush.txt","r",stdin);
rei(n);
rei(m);
rep1(i,1,m)
{
int x,y;
rei(x);rei(y);
du[y]++;
g[x].push_back(y);
}
while (true)
{
int cnt = 0,j=-1;
rep1(i,1,n)
if (du[i]==0)
{
cnt++;
if (cnt==1) j = i;
}
if (cnt>1) yes = 1;
if (j==-1)
break;
du[j] = -1;
int len = g[j].size();
rep1(i,0,len-1)
du[g[j][i]]--;
printf("%d\n",j);
}
printf("%d\n",yes);
return 0;
}
【t075】郁闷的记者的更多相关文章
- 非常郁闷的 .NET中程序集的动态加载
记载这篇文章的原因是我自己遇到了动态加载程序集的问题,而困扰了一天之久. 最终看到了这篇博客:http://www.cnblogs.com/brucebi/archive/2013/05/22/Ass ...
- BZOJ 1503: [NOI2004]郁闷的出纳员
1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 10526 Solved: 3685[Submit][Stat ...
- 山东省选 郁闷的小J
小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的. 具体说来,书架由 ...
- NOI2004 郁闷的出纳员
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...
- [BZOJ1503][NOI2004]郁闷的出纳员
[BZOJ1503][NOI2004]郁闷的出纳员 试题描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是 ...
- BZOJ 1503: [NOI2004]郁闷的出纳员 splay
1503: [NOI2004]郁闷的出纳员 Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作 ...
- 【BZOJ1503】 [NOI2004]郁闷的出纳员 splay
splay模板题,都快把我做忧郁了. 由于自己调两个坑点. 1.删除时及时updata 2.Kth 考虑k满足该点的条件即r->ch[1]->size+1<=k && ...
- 【BZOJ】1503: [NOI2004]郁闷的出纳员(Splay)
http://www.lydsy.com/JudgeOnline/problem.php?id=1503 这题没有看题解就1a了-好开心,, 其实后面去看题解发现他们的都很麻烦,其实有种很简单的做法: ...
- c++之路进阶——codevs1286(郁闷的出纳员)
1286 郁闷的出纳员 2004年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description OIER公司 ...
随机推荐
- C#解决关闭多线程的form主窗体时抛出ObjectDisposedException 异常
一.现象: 我在主窗体新建线程,使用子线程来处理接收到的数据,并且更新窗体显示内容,但关闭主窗体程序之后就程序就报错,如下所示: 二.分析问题: 由于新建线程的处理函数里边是一直死循环处理数据,虽然窗 ...
- WCF 字节数据传输
准备工作 1.新建一个工程,添加一个WCF服务库, 然后公共的类库, 添加一个默认可序列化的的CompositeType类用于压缩. [Serializable] public class Compo ...
- Web 组件是什么
Web 组件是什么 一.总结 这篇下面的内容多看 1.组件化的目的:高内聚,低耦合,便于多人同时开发 2.各种前端框架(前端组件化)让写前端不要太简单: 3.组件编程最最最最简单实例: <lin ...
- Eclipse Class Decompiler——Java反编译插件手工配置方法
最近在eclipse上配置了java反编译插件,但是不好用,原因是我的eclipse之前有手动配置过一些类似的java反编译插件,当我将原来的插件完全卸载后重新配置才正常配置上去,自动配置java反编 ...
- JS学习笔记 - 面向对象
类.对象类:模子对象:产品(成品) 蛋糕(对象) 模子(类) Array 类 arr 对象 Array.push(); 错 arr.push(); 对 new arr(); 错 原型prototype ...
- 鲁德http://www.testroad.org/topic/76
[最新的招聘信息]:1.联动优势科技有限公司招聘性能测试工程师 薪资20K左右 http://ask.testroad.org/article/4042.上海-交通银行总行-性能测试专家 ...
- 【CS Round #48 (Div. 2 only)】Game of Chance
[链接]h在这里写链接 [题意] 在这里写题意 [题解] 在这里写题解 [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using n ...
- [求助]linux同一目录可否挂载多个数据盘?
https://bbs.aliyun.com/read/281222.html?pos=20
- GDB中创建要素数据集
转自 在geodatabase中创建要素集 //在数据集中创建要素 private void menuItem25_Click(object sender, System.EventArgs e) { ...
- RMQ问题-ST方法
参考 http://blog.csdn.net/sdj222555/article/details/7875575 RMQ 就是 Range Minimum/Maximum Query 就是求区间最值 ...