P3243 [HNOI2015]菜肴制作(拓扑排序)
P3243 [HNOI2015]菜肴制作
题目误导你正着做拓扑排序,然鹅你可以手造数据推翻它。于是就只能倒着做
我们开个优先队列,每次把可填的最大的编号取出来搞,最后倒着输出拓扑序就好辣
#include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; #define N 100005 int n, m, tp, Q[N], in[N]; int cnt,hd[N],nxt[N<<1],ed[N],poi[N<<1]; inline void add(int x,int y){nxt[ed[x]]=++cnt, hd[x]=hd[x]?hd[x]:cnt,ed[x]=cnt, poi[cnt]=y, ++in[y]; } void bfs() {priority_queue<int> h; for (int i = 1; i <= n; ++i)if (!in[i]) h.push(i);while (!h.empty()) {int x = h.top(); h.pop();Q[++tp] = x;for(int i=hd[x];i;i=nxt[i]){--in[poi[i]];if(in[poi[i]]==0) h.push(poi[i]);}} } int main() {int T; scanf("%d",&T);while(T--){memset(in,0,sizeof(in));memset(hd,0,sizeof(hd));memset(ed,0,sizeof(ed));memset(nxt,0,sizeof(nxt)); tp=cnt=0;scanf("%d%d", &n, &m);for (int i = 1, f, t; i <= m; ++i) scanf("%d%d", &f, &t),add(t,f);bfs();if (tp < n) {puts("Impossible!");continue;}for (int i = n;i; --i) printf("%d ", Q[i]);printf("\n");}return 0; }
转载于:https://www.cnblogs.com/kafuuchino/p/10660742.html
P3243 [HNOI2015]菜肴制作(拓扑排序)相关推荐
- 洛谷P3243 [HNOI2015]菜肴制作——拓扑排序
题目:https://www.luogu.org/problemnew/show/P3243 正向按字典序拓扑排序很容易发现是不对的,因为并不是序号小的一定先做: 但若让序号大的尽可能放在后面,则不会 ...
- bzoj 4010: [HNOI2015]菜肴制作 拓扑排序
4010: [HNOI2015]菜肴制作 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- 【luoguP3243】[HNOI2015]菜肴制作--拓扑排序
题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴 ...
- P3243 [HNOI2015]菜肴制作 (拓扑排序)
[HNOI2015]菜肴制作 - 洛谷 建反图跑字典序最大top_sort即可. /*keep on going and never give up*/ #include<bits/stdc++ ...
- P3243 [HNOI2015]菜肴制作(拓扑 + 优先队列)
题目描述: 知名美食家小 A 被邀请至 ATM 大酒店,为其品评菜肴.ATM 酒店为小 A 准备了 n 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1 到 n 的顺序编号,预估质量最高的菜肴编号为 ...
- 洛谷P3243 [HNOI2015]菜肴制作(思维+反向拓扑)
传送门 听说原本是紫题 需要先做 i i i 再做 j j j 的限制很自然的让人想到了拓扑排序,然而让编号较小的菜肴尽可能较早输出并不是要求得到最小字典序的答案!! 反面样例可见第三组输入数据,若按 ...
- B4010 菜肴制作 拓扑排序(附随机跳题代码)
今天写了一个自己的随机跳题小程序,第一次试发现跳的全是不可做题,但是在周围我一眼看见了这个题,不能说一眼看出来,但是也是比较有思路,所以就做他了! 做得比较顺利,做完之后美滋滋,突然发现样例第三组过不 ...
- P3243 [HNOI2015]菜肴制作(拓扑排序、贪心)
解析 很好的题 也就是我没做出来的意思 反向思维似乎是我欠缺的 这道题也是 也许做题时应该多特意往这边想想 当正向看并没有太好的性质时,也许反过来能使题目豁然开朗 容易想到暴力n方如何做 (以下均指反 ...
- 洛谷:P3243 [HNOI2015]菜肴制作(拓扑序列、建反图、贪心)
美食家老嗨 题意: 很容易读偏,以为是求满足限制下的最小字典序. 要求是在满足所有限制后,优先做 1,此外优先做 2 - -- 摘自xyz32768 C o d e : Code: Code: #in ...
最新文章
- 一本关于 女仆小说的构思,有能力写的看下
- wprintf 和 wcout
- IOS常用代码总结 - 第三方库部分
- linux fedora14 u盘运行,用U盘安装Fedora的详细步骤
- Solr管理页面 上
- Java——集合(输入5个学生的信息按总分高低排序)
- python调用http方法_python 使用poster模块进行http方式的文件传输到服务器的方法
- Linux 启动过程剖析
- php 非常简单的导入sql文件
- redis 经典36问
- Ansys workbench静应力分析基本流程
- 网络工程师考试知识点
- PV(访问量)、UV(独立访客)、IP(独立IP)
- K210入门,用wifi通讯
- Git入门-github
- python干货分享/网址总结
- 终极 Shell——ZSH
- c语言循环卖n西瓜 几天卖完,C++循环结构23道题含答案.docx
- matlab输出正负号±
- 机器学习实战——人脸表情识别