hdu-----(4857)逃生(拓扑排序)
逃生
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1161 Accepted Submission(s): 368
现在有n个人,从1标号到n。同时有一些奇怪的约束条件,每个都形如:a必须在b之前。
同时,社会是不平等的,这些人有的穷有的富。1号最富,2号第二富,以此类推。有钱人就贿赂负责人,所以他们有一些好处。
负责人现在可以安排大家排队的顺序,由于收了好处,所以他要让1号尽量靠前,如果此时还有多种情况,就再让2号尽量靠前,如果还有多种情况,就让3号尽量靠前,以此类推。
那么你就要安排大家的顺序。我们保证一定有解。
然后对于每个测试数据,第一行有两个整数n(1 <= n <= 30000)和m(1 <= m <= 100000),分别表示人数和约束的个数。
然后m行,每行两个整数a和b,表示有一个约束a号必须在b号之前。a和b必然不同。
#include<cstdio> #include<cstring> #include<stack> #include<vector> #include<queue> using namespace std; const int maxn=30005; vector<vector<int> >mat; stack<int >ans; int outdg[maxn]; struct cmp{bool operator ()( int &a,int &b){return a<b;} }; priority_queue<int,vector<int>,cmp>aa; int n,m; void tp_sort(){int len,i;while(!aa.empty()){i=aa.top();aa.pop();ans.push(i);len=mat[i].size();for(int j=0;j<len;j++){outdg[mat[i][j]]--;if(outdg[mat[i][j]]==0)aa.push(mat[i][j]);}} } int main(){// sync_with_stdio(1);int cas,i,a,b;scanf("%d",&cas);while(cas--){scanf("%d%d",&n,&m);mat.clear();mat.resize(n+2);memset(outdg,0,sizeof(int)*(n+1));for(i=0;i<m;i++){scanf("%d%d",&a,&b);mat[b].push_back(a);outdg[a]++;}for(i=n;i>=1;i--)if(outdg[i]==0)aa.push(i);tp_sort();printf("%d",ans.top());ans.pop();while(!ans.empty()){printf(" %d",ans.top());ans.pop();}puts("");} return 0; }
hdu-----(4857)逃生(拓扑排序)相关推荐
- hdu 4857 逃生 拓扑排序
逃生 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4857 Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只 ...
- HDU 4857 逃生 拓扑排序好题 第一次做CLJ出的题
逃生 Problem Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行. 现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须在b ...
- HDU 4857 逃生 (反向拓扑排序 容器实现)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 逃生 Time Limit: 2000/1000 MS (Java/Others) Mem ...
- HDU 4857 逃生 【拓扑排序+反向建图+优先队列】
逃生 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...
- HDU 4857 逃生(拓扑排序)
拓扑排序 一.定义 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若<u,v> ∈ ...
- 反向拓扑排序 HDU 4857 逃生
题意:n个结点,m个拓扑关系(a,b)表示a必须排在b前面,在满足m个拓扑关系关系的前提下使得小的结点尽可能的排在前面.也就是说我们现在要从1号结点开始考虑,如果要排1号结点,根据拓扑关系,首先必须排 ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 2647 Reward (拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意是给你n点m条有向边,叶子点(出度为0)上的值为888,父亲点为888+1,依次计算... ...
- HDU 2647 Reward 拓扑排序
http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意: 输入N和M代表N个人和M组数据,M组数据中的A和B代表A的工资要比B的工资高,底薪是(888元), ...
最新文章
- VS 2005 文本编码小技巧 --中文亂碼問題解決
- secureCRT的安装及破解
- serialize-and-deserialize-bst
- 如何为报表服务器设置SQL Server数据库复制
- winedt (latex 编译器)解决中文的问题(CJK CTEX)
- 从零开始学wordpress 之四
- WPF 使用附加属性增加控件属性
- Dockerfile文件:使用脚本文件生成镜像
- xjad使用中的几个问题
- 【不务正业】之前端HTML基础(二)
- 一定要记住这20种PS技术!来美化你的照片
- 判断分解的无损连接性和保持函数依赖
- 问题:加入导航条后webView的UIWebBrowserView位置偏移
- social network 学习心得
- 智能化的Conversational UI是移动发展的一个趋势
- 简述人工智能发展的先决条件
- Everything指定用XYplorer打开目录路径
- IAR中使用IELFTOOL进行软件代码checksum的生成和添加
- Basler驱动如何彩色相机白平衡说明
- 真香!有了这个搜索大法,GitHub玩到飞起来!
热门文章
- python-全栈开发-前方高能-内置函数
- asp.net 无法获取客户端请求的真实协议https
- Vulkan Tutorial 14 Integration pipeline
- 标准非STL容器 : bitset
- [裴礼文数学分析中的典型问题与方法习题参考解答]4.3.23
- Windows 8 系列 --Block Game --随笔
- linux 下共享库创建及使用
- Java程序员从笨鸟到菜鸟之(一)开发环境搭建,基本语法,字符串,数组
- 明确需求与功能,优化小打卡的分享刺激点
- linux中的软RAID实现,逻辑卷和btrfs文件系统