HDU-4857 逃生
来源:互联网 发布:网络玄幻小说家排名 编辑:程序博客网 时间:2024/05/14 05:48
题目链接:https://vjudge.net/problem/HDU-4857
优先队列加拓扑排序,挑大的从后往前排
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<set>#include<queue>using namespace std;const int N=30000+10;set<int> g[N];int n,m;int ind[N],topo[N];bool topsort(){priority_queue<int> q;for(int i=1;i<=n;i++)if(ind[i]==0) q.push(i);int t=n; while(!q.empty()){ int k=q.top(); q.pop(); topo[t--]=k; for(set<int>::iterator it=g[k].begin();it!=g[k].end();it++) { ind[*it]--; if(ind[*it]==0) q.push(*it); } } return true;}int main(){int T,a,b;scanf("%d",&T);while(T--){memset(ind,0,sizeof(ind));scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)g[i].clear();for(int i=0;i<m;i++){scanf("%d%d",&a,&b);if(!g[b].count(a)){g[b].insert(a);ind[a]++;}}if(topsort()){for(int i=1;i<n;i++)printf("%d ",topo[i]);printf("%d\n",topo[n]);}}return 0;}
阅读全文
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-逃生-拓扑排序
- C/C++常见错误详解
- 用shell脚本操作mongodb更新
- Java LinkedList之KTV点歌系统
- 堆栈
- GTX960笔记本挖矿(NiceHash Miner),一天最多0.5美元!也就3块多
- HDU-4857 逃生
- 运输层端口及相关linux命令
- [ Java学习 ] 异常实验
- uva11988
- Intent的使用
- 棋盘问题 --dfs加回溯
- MATLAB 实现轨迹分类(路径分类)
- 用模板类迭代器实现顺序表
- MyBatis-逆向工程