博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4857 逃生(拓扑排序最小字典序)
阅读量:4950 次
发布时间:2019-06-11

本文共 1172 字,大约阅读时间需要 3 分钟。

题意:中文题

思路:我一直以为自己过掉了这个题,直到有天upc 训练时发现没过,现在打卡

这个题其实就是拓扑排序加上优先队列,因为我们对于没有入度的点呢,可以丢到优先队列中,这样就会弹出最小字典序(2018第一场多校耻辱下机,被1004卡3小时,思路差不多疯狂T)

代码:

#include 
#include
#include
#include
#include
using namespace std;const int maxn=30005;int n,m,ans;bool vis[maxn];int in[maxn];vector
edge[maxn];int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); memset(in,0,sizeof(in)); for(int i=1;i<=n;i++)edge[i].clear(); for(int i=1;i<=m;i++){ int u,v; scanf("%d%d",&u,&v); in[u]++; edge[v].push_back(u); }// printf("test\n"); priority_queue
q; for(int i=1;i<=n;i++){ if(in[i]==0)q.push(i); } memset(vis,0,sizeof(vis)); vector
res; ans=0;// printf("test\n"); while(!q.empty()){ ans++;// printf("test %d %d\n",ans,q.size()); int now=q.top(); res.push_back(now); q.pop(); vis[now]=1; for(int i=0;i
=0;i--){ if(i==res.size()-1) printf("%d",res[i]); else printf(" %d",res[i]); } puts(""); } return 0;}

 

转载于:https://www.cnblogs.com/lalalatianlalu/p/9357139.html

你可能感兴趣的文章
SDOI10 古代猪文题解
查看>>
Codeforces Round #517(Div2) A.Golden Plate
查看>>
JAVA中Date类的使用
查看>>
JS 获取各个偶数之和!!
查看>>
Android 调用堆栈跟踪
查看>>
Windows命令行使用FTP
查看>>
POJ1045 Bode Plot
查看>>
MSMQ(消息队列)
查看>>
文明-墓-太阳墓:太阳墓
查看>>
云:VMware
查看>>
建模:数据建模
查看>>
Shell
查看>>
[loj 2478][luogu P4843]「九省联考 2018」林克卡特树
查看>>
电脑插上耳机没声音
查看>>
pyqt5的使用目录
查看>>
UVA 1395 Slim Span 最小生成树
查看>>
Bug管理工具(TCE)之缺陷流程定制
查看>>
srv.exe蠕虫病毒~
查看>>
hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系...
查看>>
2.Flask jinjia2模板
查看>>