[2017纪中11-2]字典序 拓扑排序+优先队列
来源:互联网 发布:.us域名查询 编辑:程序博客网 时间:2024/05/16 08:06
题面
拓扑排序的时候每次取出最小点就是了。。。
代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#include<vector>using namespace std;const int maxn=100010;int n,m,rd[maxn],ans[maxn];priority_queue <int,vector<int>,greater<int> > a;struct edge{ int t; edge *next;}*con[maxn];int read(){ int x=0; char ch=getchar(); while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();} return x;}void ins(int x,int y){ edge *p=new edge; p->t=y; p->next=con[x]; con[x]=p;}int main(){ n=read();m=read(); for(int i=1;i<=m;i++) { int x=read(),y=read(); ins(x,y); rd[y]++; } for(int i=1;i<=n;i++) if(rd[i]==0) a.push(i); for(int i=1;i<=n;i++) { if(a.empty()) {puts("-1");return 0;} ans[i]=a.top(); a.pop(); for(edge *p=con[ans[i]];p!=NULL;p=p->next) { rd[p->t]--; if(rd[p->t]==0) a.push(p->t); } } for(int i=1;i<=n;i++) printf("%d ",ans[i]); return 0;}
阅读全文
0 0
- [2017纪中11-2]字典序 拓扑排序+优先队列
- 拓扑排序+优先队列
- 拓扑排序+优先队列
- hdu1285 拓扑排序+优先队列
- HDU1285(拓扑排序+优先队列)
- 拓扑排序-字典序
- 拓扑排序(字典序)
- HDU 4857 逃生 拓扑排序+优先队列
- 拓扑排序+优先队列Labeling Balls
- hdu4857拓扑排序+优先队列+逆向
- 拓扑排序+优先队列 hdu4857 逃生
- hdu 2643 拓扑排序加优先队列
- hdoj 4857 逃生【拓扑排序&&优先队列】
- 链表加优先队列做拓扑排序
- HDU4857 逃生【逆向拓扑排序】【优先队列】
- HDU 5695 (拓扑排序 优先队列)
- Gym Class(优先队列+拓扑排序)
- HDU5695:Gym Class(优先队列+拓扑排序)
- cf873B-Balanced Substring(前缀和)
- Java中@Override的作用
- 多标签分类及其 caffe 实现总结
- 移动零-LintCode
- TCP三次握手简析
- [2017纪中11-2]字典序 拓扑排序+优先队列
- Paper list of Imbalanced Time-series Classification with Deep Learning
- OpenCv中的cv::Mat::create()函数,cvRound(),cvFloor(),cvCeil()函数的详解l
- getch()和getchar()之再讨论
- Unix/Linux下的open函数(O_CREAT和O_EXCL)
- sql执行顺序
- adb常用命令
- springmvc 中自定义拦截器
- HTML5新增的标签