POJ 3687 (拓扑排序,逆序,优先队列)
来源:互联网 发布:asp交友源码 编辑:程序博客网 时间:2024/06/03 14:17
题目:http://poj.org/problem?id=3687
是一个练习字典序输出,拓扑排序的好题,但考察的数据太没意思。
输出的是位置而不是序列本身。。。
大意:给了约束,a>b,其余按字典序输出。
/*优先队列。*/#include<cstdio>#include<cstring>#include<iostream>#include<queue>using namespace std;const int maxn=205;int in[maxn],sum,n,m,ans[maxn];bool visit[maxn][maxn];vector<int > G[maxn];void init(){ memset(G,0,sizeof(G)); memset(in,0,sizeof(in)); memset(ans,0,sizeof(ans)); memset(visit,0,sizeof(visit)); sum=n;}void toposort(){ priority_queue<int>s; int cnt=n; for(int i=1;i<=n;i++){ //注意是从0开始还是从1开始 if(in[i]==0) //收入入度为0的点 s.push(i); } while(!s.empty()){ //由于互为环的点的入度是不会为0的,所以不会被push进来 int pos=s.top(); s.pop(),sum--; ans[pos]=cnt--; for(int i=0;i<G[pos].size();i++){ in[G[pos][i]]--; //与pos相连的点入度减一 if(in[G[pos][i]]==0) s.push(G[pos][i]); //收入新一波入度为0的点 } } if(sum>0) printf("-1\n"); //有环,sum无法-- else{ for(int i=1;i<n;i++) printf("%d ",ans[i]); printf("%d\n",ans[n]); }}int main(){ int num; scanf("%d",&num); while(num--){ scanf("%d%d",&n,&m); init(); int x,y; for(int i=0;i<m;i++){ scanf("%d%d",&x,&y); if(visit[x][y]==true) continue; G[y].push_back(x); in[x]++; visit[x][y]=true; } toposort(); } return 0;}
阅读全文
0 0
- POJ 3687 (拓扑排序,逆序,优先队列)
- POJ 3687:Labeling Balls(优先队列+拓扑排序)
- HDOJ 题目4857 逃生(逆序拓扑排序,优先队列)
- POJ 3687 Labeling Balls 拓扑排序 优先队列实现
- 拓扑排序+优先队列
- 拓扑排序+优先队列
- Gym Class(优先队列+拓扑排序)
- POJ 3687 Labeling Balls(拓扑排序,逆序)
- POJ 3687-Labeling Balls(逆序拓扑排序)
- Labeling Balls(POJ 3687-逆序拓扑排序)
- POJ:3687 Labeling Balls (反向建图+拓扑排序+优先队列)
- POJ 3687 Labeling Balls(拓扑排序【反向建图+优先队列】)
- Poj 3687 Labeling Balls【逆向建图+拓扑排序+优先队列+思维】
- hdu1285 拓扑排序+优先队列
- HDU1285(拓扑排序+优先队列)
- HDOJ 4857 逃生(拓扑排序(邻接表+反向建图,逆序输出+优先队列))
- hdoj 4857 逃生 (拓扑排序--逆序构图+邻接表+优先队列)
- POJ 3687--Labeling Balls【拓扑排序 && 逆序拓扑 && 输出在拓扑排序中的位置】
- numpy的应用案例
- Xcode 引 boost 库
- JAVA笔记概览
- [Python]网络爬虫(三):异常的处理和HTTP状态码的分类
- PHP中数组的定义及声明实例
- POJ 3687 (拓扑排序,逆序,优先队列)
- LeetCode-101. Symmetric Tree
- 详谈java中的静态和非静态
- 排序算法
- bzoj 3751: [NOIP2014]解方程(同余系)
- AES实现加密算法
- 第15章 磁盘配额(Quota)与进阶文件系统管理
- PS CS6移动工具中图层与组设置快捷键切换(ps动作录制的妙用)
- redis的测试学习小结