【BZOJ4010】【HNOI2015】菜肴制作
来源:互联网 发布:python 推荐书籍 编辑:程序博客网 时间:2024/05/15 03:37
链接:
#include <stdio.h>int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/45365831");}
题解:
把所有入度为0的点入优先队列,每次取出标号最大的,并将此点取走后入度为0的点入优先队列,最后反序输出。
代码:
#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 101000#define M 101000using namespace std;struct Eli{ int v,next;}e[M];int head[N],cnt,d[N];inline void add(int u,int v){ d[v]++; e[++cnt].v=v; e[cnt].next=head[u]; head[u]=cnt;}priority_queue<int>q;int ans[N],n,m;int main(){ freopen("test.in","r",stdin); int i,j,k; int a,b,c; int g;for(scanf("%d",&g);g--;) { memset(head,0,sizeof head); memset(d,0,sizeof d); scanf("%d%d",&n,&m); cnt=0; while(m--) { scanf("%d%d",&a,&b); add(b,a); } m=0; for(i=1;i<=n;i++)if(!d[i])q.push(i); while(!q.empty()) { ans[++m]=q.top(),q.pop(); for(i=head[ans[m]];i;i=e[i].next) if(!--d[e[i].v])q.push(e[i].v); } if(m!=n)puts("Impossible!"); else {while(m)printf("%d ",ans[m--]);puts("");} }}
0 0
- 【BZOJ4010】【HNOI2015】菜肴制作
- 【HNOI2015】【BZOJ4010】菜肴制作
- bzoj4010: [HNOI2015]菜肴制作
- bzoj4010【HNOI2015】菜肴制作
- bzoj4010: [HNOI2015]菜肴制作
- BZOJ4010: [HNOI2015]菜肴制作
- 【bzoj4010】[HNOI2015]菜肴制作
- [bzoj4010][HNOI2015]菜肴制作
- 【bzoj4010】 HNOI2015—菜肴制作
- [BZOJ4010]HNOI2015菜肴制作|拓扑排序+堆
- 【bzoj4010】【HNOI2015】【菜肴制作】【堆+图论】
- BZOJ4010: [HNOI2015]菜肴制作 解题报告
- 【BZOJ4010】【HNOI2015】菜肴制作(拓扑排序)
- 【拓扑+堆】BZOJ4010(HNOI2015)[菜肴制作]题解
- bzoj4010 [HNOI2015]菜肴制作 拓补排序+堆
- bzoj4010 [HNOI2015]菜肴制作(拓扑排序+贪心)
- [BZOJ4010][HNOI2015]菜肴制作(拓扑排序+堆)
- BZOJ4010【HNOI2005】菜肴制作
- Writing a boot loader in Assembly and C
- JavaScript中eval 是做什么用的?
- ffmpeg av_register_all 异常
- Golang学习笔记//配置学习环境
- 在Ubuntu 14.04上装teamviewer
- 【BZOJ4010】【HNOI2015】菜肴制作
- VIM基础
- 对域名,域名解析的一些理解
- 判断手机访问还是电脑访问
- 信息增益,信息增益率,Gini
- ESP8266 in deep sleep
- C#中的序列化和反序列化是什么、有什么作用、使用方法详解
- 如何利用xib封装一个view
- 单片机实现软件滤波