BZOJ 4010 [HNOI2015] 菜肴制作
来源:互联网 发布:java程序员薪资 编辑:程序博客网 时间:2024/06/09 18:58
反向图+拓扑序
本题证法详见黄学长博客。
#include <cstdio>#include <iostream>#include <cstdlib>#include <algorithm>#include <queue>#include <cstring>using namespace std ;const int N=100010;int D,n,m;typedef struct EDGE{ int to,next; EDGE (){ to=next=0; } EDGE (int a,int b){ to=a,next=b; }}E;E edge[N];int head[N],cnt;int ind[N];priority_queue <int> q;int ans[N],lens,vis[N];inline void E_add (int u,int v){ edge[++cnt]=EDGE (u,head[v]); head[v]=cnt; ind[u]++;}void init (){ cin >>D;}void readin (){ int i,j,k; scanf ("%d %d",&n,&m); for (i=1;i<=m;i++){ scanf ("%d %d",&j,&k); E_add (j,k); }}void work (){ int i,now,p; memset (ans,0,sizeof(ans)); lens=0; for (i=1;i<=n;i++){ if (ind[i]==0) q.push(i); } while (!q.empty ()) { now=q.top (); q.pop (); ans[++lens]=now; for (p=head[now];p;p=edge[p].next){ ind[edge[p].to]--; if (ind[edge[p].to]==0) q.push (edge[p].to); } } if (lens!=n) { printf ("Impossible!\n"); return ; } else { for (i=n;i>=1;i--) printf ("%d ",ans[i]); printf ("\n"); }}int main (){ init (); int i; for (i=1;i<=D;i++){ memset (ind,0,sizeof (ind)); memset (head,0,sizeof(head)); cnt=0; readin (); work (); } return 0;}
0 0
- BZOJ 4010: [HNOI2015]菜肴制作
- 【BZOJ 4010】 [HNOI2015]菜肴制作
- BZOJ 4010: [HNOI2015]菜肴制作
- BZOJ 4010 [HNOI2015]菜肴制作
- BZOJ 4010 [HNOI2015] 菜肴制作
- BZOJ 4010: [HNOI2015]菜肴制作
- BZOJ 4010 [HNOI2015]菜肴制作 拓扑排序
- BZOJ 4010 [HNOI2015]菜肴制作 拓扑排序
- 4010: [HNOI2015]菜肴制作
- 4010: [HNOI2015]菜肴制作
- BZOJ 4010 HNOI2015 菜肴制作 拓扑排序+堆
- BZOJ 4010: [HNOI2015]菜肴制作|拓扑排序贪心
- bzoj 4010: [HNOI2015]菜肴制作(优先队列+拓扑排序)
- bzoj 4010: [HNOI2015]菜肴制作 拓扑排序+堆
- 4010: [HNOI2015]菜肴制作 拓扑排序+贪心
- 【BZOJ4010】【HNOI2015】菜肴制作
- 【HNOI2015】【BZOJ4010】菜肴制作
- bzoj4010: [HNOI2015]菜肴制作
- html表格
- Spring的七个核心模块
- 使用优先级队列求一个大数组中的前k个最大的数(或前k个最小的数)
- uv纹理坐标设定与贴图规则
- 今日头条面试手写代码-找出所有非递增减的子数组
- BZOJ 4010 [HNOI2015] 菜肴制作
- CodeForces 566 D.Restructuring Company(并查集)
- 我的java学习之路-tomcat与jsp
- (转载)2017第八届蓝桥杯C/C++ B组省赛题解
- 01_链表的翻转(C语言)
- 多线程
- 插件与主题
- [HDU 1796]How many integers can you find:容斥原理
- oralce监听配置允许访问本地数据库