Luogu3243 [HNOI2015]菜肴制作 (拓扑排序)
题面毒人,其实就是叫你反图跑拓扑
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Abs(a) ((a) < 0 ? -(a) : (a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long
//#define ON_DEBUG
#ifdef ON_DEBUG
#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#define FileOpen() freopen("in.txt","r",stdin);
#else
#define D_e_Line ;
#define D_e(x)  ;
#define Pause() ;
#define FileOpen() ;
#endif
struct ios{
    template<typename ATP>ios& operator >> (ATP &x){
        x = 0; int f = 1; char c;
        for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;
        while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();
        x*= f;
        return *this;
    }
}io;
using namespace std;
#include<queue>
const int N = 100007;
struct Edge{
	int nxt, pre;
}e[N << 1];
int head[N], cntEdge;
inline void add(int u, int v){
	e[++cntEdge] = (Edge){ head[u], v}, head[u] = cntEdge;
}
int in[N];
priority_queue<int>q;
int ans[N];
int main(){
	int Tasks;
	io >> Tasks;
	int flag = 0;
	while(Tasks--){
		int n, m;
		io >> n >> m;
		if(flag){
			R(i,0,n){
				head[i] = in[i] = 0;
			}
			cntEdge = 0;
		}
		R(i,1,m){
			int u, v;
			io >> u >> v;
			add(v, u);
			++in[u];
		}
		int tot = 0;
		R(i,1,n){
			if(!in[i]){
				q.push(i);
			}
		}
		while(!q.empty()){
			int u = q.top();
			q.pop();
			ans[++tot] = u;
			for(register int i = head[u]; i; i = e[i].nxt){
				int v = e[i].pre;
				--in[v];
				if(!in[v]){
					q.push(v);
				}
			}
		}
		if(tot != n){
			printf("Impossible!\n");
			flag = 1;
			continue;
		}
		nR(i,n,1){
			printf("%d ", ans[i]);
		}
		putchar('\n');
		flag = 1;
	}
	return 0;
}

Luogu3243 [HNOI2015]菜肴制作 (拓扑排序)的更多相关文章
- 【BZOJ4010】[HNOI2015]菜肴制作 拓扑排序
		[BZOJ4010][HNOI2015]菜肴制作 Description 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高 ... 
- bzoj 4010: [HNOI2015]菜肴制作 拓扑排序
		题目链接: 题目 4010: [HNOI2015]菜肴制作 Time Limit: 5 Sec Memory Limit: 512 MB 问题描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴 ... 
- 【bzoj4010】[HNOI2015]菜肴制作  拓扑排序+堆
		题目描述 给你一张有向图,问:编号-位置序(即每个编号的位置对应的序列)最小(例如1优先出现在前面,1位置相同的2优先出现在前面,以此类推)的拓扑序是什么? 输入 第一行是一个正整数D,表示数据组数. ... 
- BZOJ4010[HNOI2015]菜肴制作——拓扑排序+堆
		题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予 1到N的顺序编号,预估质量最高的菜肴编号为1.由于菜肴 ... 
- [LOJ2114][HNOI2015]-菜肴制作-拓扑排序+贪心
		<题面> 一个蒟蒻的痛苦一天 在今天的节目集训中,麦蒙将带领大家学习9种错误的解题策略 $15\%$算法(看两个就往下走吧) 1> puts("Impossible!&qu ... 
- 洛谷P3243 [HNOI2015]菜肴制作 拓扑排序+贪心
		正解:拓扑排序 解题报告: 传送门! 首先看到它这个约束就应该要想到拓扑排序辣QwQ 首先想到的应该是用优先队列代替队列,按照节点编号排序 然后也很容易被hack:<5,1> 正解应为5, ... 
- 洛谷P3243 [HNOI2015]菜肴制作——拓扑排序
		题目:https://www.luogu.org/problemnew/show/P3243 正向按字典序拓扑排序很容易发现是不对的,因为并不是序号小的一定先做: 但若让序号大的尽可能放在后面,则不会 ... 
- 【luoguP3243】[HNOI2015]菜肴制作--拓扑排序
		题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴 ... 
- BZOJ4010: [HNOI2015]菜肴制作(拓扑排序 贪心)
		题意 题目链接 Sol 震惊,HNOI竟出NOI原题 直接在反图上贪心一下. // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include& ... 
- 【HNOI2015】菜肴制作 - 拓扑排序+贪心
		题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴 ... 
随机推荐
- Mac下iTerm2安装rzsz后上传下载失败解决
			背景描述 mac环境,安装了iTerm2,需要使用ssh登陆linux服务器.服务器登陆需要经过以下步骤 输入token 输入登陆选项 输入IP 因此写了expect脚本来完成自动输入 但是在上传下载 ... 
- 联发科 (MTK) sensor bring up
			MT6768平台 1.添加驱动文件 2.添加硬件配置支持 3.添加硬件配置 4.添加编译配置 5.分配空间(非必要,当代码量超过当前空间大小时将会报错,根据报错log改大小即可.) 6.兼容配置 7. ... 
- Dubbo本地存根是什么,Dubbo本地伪装又是什么?
			真正的大师永远怀着一颗学徒的心 哈喽!大家好,我是小奇,一位程序员界的学徒 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 前言 书接上回,昨天打了 ... 
- 使用FileSystemWatcher监听文件状态
			更新记录 本文迁移自Panda666原博客,原发布时间:2021年7月2日. 一.FileSystemWatcher类型介绍 在.NET中使用 FileSystemWatcher 类型可以进行监视指定 ... 
- windows 2003系统安装
			一.使用workstation创建虚拟机 二.系统安装 点击"Enter" 点击"F8" 点击"Enter" 如下图所示: 点击" ... 
- Android 12(S) 图像显示系统 - HWC HAL 初始化与调用流程
			必读: Android 12(S) 图像显示系统 - 开篇 接口定义 源码位置:/hardware/interfaces/graphics/composer/ 在源码目录下可以看到4个版本的HIDL ... 
- Redis入门到精通01
			Redis入门到精通 目录 Redis入门到精通 一.Redis缓存框架基本介绍 1.1Redis的应用场景 二.Redis的安装方式 2.1Windows操作系统安装Redis 2.2Linux操作 ... 
- 面向个性化需求的在线云数据库混合调优系统 | SIGMOD 2022入选论文解读
			SIGMOD 数据管理国际会议是数据库领域具有最高学术地位的国际性会议,位列数据库方向顶级会议之首.近日,腾讯云数据库团队的最新研究成果入选 SIGMOD 2022 Research Full Pap ... 
- 爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
			什么是Scrapy 基于Twisted的异步处理框架 纯python实现的爬虫框架 基本结构:5+2框架,5个组件,2个中间件 5个组件: Scrapy Engine:引擎,负责其他部件通信 进行信号 ... 
- 如何用车辆违章查询API接口进行快速开发
			最近公司项目有一个车辆违章查询显示的小功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的车辆违章查询API非常符合我的开发需求. ... 
