【HNOI2015】【BZOJ4010】菜肴制作
来源:互联网 发布:windows镜像文件下载 编辑:程序博客网 时间:2024/05/16 08:30
Description
知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴。
ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予
1到N的顺序编号,预估质量最高的菜肴编号为1。由于菜肴之间口味搭配的问题,
某些菜肴必须在另一些菜肴之前制作,具体的,一共有 M 条形如“i 号菜肴‘必须’
先于 j 号菜肴制作”的限制,我们将这样的限制简写为
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<queue>#define MAXN 100010#define GET (ch>='0'&&ch<='9')using namespace std;int T,n,m,top;int In[MAXN];int sta[MAXN],tp;void in(int &x){ char ch=getchar();x=0; while (!GET) ch=getchar(); while (GET) x=x*10+ch-'0',ch=getchar();}struct edge{ int to; edge *next;}e[MAXN],*prev[MAXN];priority_queue<int> heap;void insert(int u,int v) {e[++top].to=v;e[top].next=prev[u];prev[u]=&e[top];}int main(){ in(T);int u,v; while (T--) { while (!heap.empty()) heap.pop(); in(n);in(m);top=0;memset(sta,0,sizeof(int)*(n+2));tp=0; memset(In,0,sizeof(int)*(n+2));memset(e,0,sizeof(edge)*(n+2));memset(prev,0,sizeof(edge*)*(n+2)); for (int i=1;i<=m;i++) in(u),in(v),swap(u,v),insert(u,v),In[v]++; for (int i=1;i<=n;i++) if (!In[i]) heap.push(i); while (!heap.empty()) { int x=heap.top();heap.pop();sta[++tp]=x; for (edge *i=prev[x];i;i=i->next) if (!--In[i->to]) heap.push(i->to); } if (tp!=n) {puts("Impossible!");continue;} for (int i=tp;i;i--) printf("%d ",sta[i]);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】菜肴制作
- IOS开发之百度地图API应用
- 高仿百度糯米iOS
- 判断邮箱,手机号码,身份证,用户名,昵称等输入格式是否正确的 正则表达式
- mybatis入门学习
- 平台系统表怎么修改为普通表
- 【HNOI2015】【BZOJ4010】菜肴制作
- JPA注解主键生成策略-UUID
- watchOS 2:架构变化和开发注意事项
- mysql更改表引擎INNODB为MyISAM的方法总结
- 在iPhone上使用3D Touch
- android里面嵌套WebView,解决 WebView点击无效的方法
- MapKit Transit
- 微信扫码支付模式二支付状态Ajax轮询实例
- winform子窗体加载父窗体事件