hdu 4857 拓扑排序
来源:互联网 发布:金融超市源码 编辑:程序博客网 时间:2024/05/16 01:18
#include<stdio.h> #include<string.h> #include<algorithm>#include<queue>#include<math.h>using namespace std;struct node{ int u,next;}g[200000];int indegree[200000];int head[200000];int ans[200000];int top;void add(int a,int b){ g[top].u=b; g[top].next=head[a]; head[a]=top++;}int main(){ int n,m; int t; scanf("%d",&t); while(t--) {scanf("%d%d",&n,&m); memset(head,-1,sizeof(head)); memset(indegree,0,sizeof(indegree)); top=0; for(int i=0;i<m;i++) { int a,b; scanf("%d%d",&a,&b); add(b,a); indegree[a]++; } priority_queue<int>q; int k=0; for(int i=1;i<=n;i++) { if(indegree[i]==0) { q.push(i); } } while(!q.empty()) { int f=q.top(); ans[k++]=f; q.pop(); for(int i=head[f];i!=-1;i=g[i].next) { int u=g[i].u; indegree[u]--; if(indegree[u]==0) { q.push(u); } } } //printf("ok\n"); for(int i=k-1;i>=0;i--) { if(i!=k-1) printf(" %d",ans[i]); else printf("%d",ans[i]); } printf("\n"); }}
阅读全文
0 0
- HDU-4857(拓扑排序)
- hdu 4857 拓扑排序
- HDU 4857--逃生【拓扑排序 && 反向拓扑】
- HDU 4857 逃生(拓扑排序)
- hdu-4857-逃生-拓扑排序
- hdu 4857(逆序拓扑排序)
- HDU 4857 逃生(拓扑排序)
- hdu-4857 逃生 拓扑排序
- HDU-4857-逃生【拓扑排序】
- hdu 4857 逃生 (拓扑排序)
- 【HDU】4857 逃生 逆拓扑排序
- hdu 4857 逆向拓扑排序+逆向输出
- HDU 4857 逃生 拓扑排序+优先队列
- hdu 4857 逆向拓扑排序+反向输出
- HDU-#4857 逃生(拓扑排序)
- hdu 4857 逃生(拓扑排序)
- hdu 4857 逃生【反向拓扑排序】
- hdu 4857 逃生(拓扑排序)
- strtok
- JavaScript学习
- javascript
- Codeforces 731 B. Coupons and Discounts
- 微信授权
- hdu 4857 拓扑排序
- spring中重要的数据结构
- VR帧传递流程
- Android下拉通知栏会影响Activity的生命周期方法吗?
- 经典算法详解--CART分类决策树、回归树和模型树
- 使用CSS实现两列布局
- 编程问题二:写一个线程池
- nodejs 主子进程通信
- Rails 导出 CSV