猫猫向前冲 || 拓扑排序

程序设计思维与实践 Week8 作业 A - 区间选点 II 题目: 给定一个数轴上的 n 个区间,要求在数轴上选取最少的点使得第 i 个区间 [ai, bi] 里至少有 ci 个点 使用差分约束系统的解法解决这道题 使用差分约束系统的解法解决这道题 使用差分约束系统的解法解决这道题 使用差分约束系统的解法解决这道题 使用差分约束系统的解法解决这道题 Input 输入第一行一个整数 n 表示区间的个数,接下来的 n 行,每一行两个... 阅读详情

题目
众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫。
有一天,TT 在 B 站上观看猫猫的比赛。一共有 N 只猫猫,编号依次为1,2,3,…,N进行比赛。比赛结束后,Up 主会为所有的猫猫从前到后依次排名并发放爱吃的小鱼干。不幸的是,此时 TT 的电子设备遭到了宇宙射线的降智打击,一下子都连不上网了,自然也看不到最后的颁奖典礼。
不幸中的万幸,TT 的魔法猫将每场比赛的结果都记录了下来,现在他想编程序确定字典序最小的名次序列,请你帮帮他。

input
输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示猫猫的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即编号为 P1 的猫猫赢了编号为 P2 的猫猫。

output
给出一个符合要求的排名。输出时猫猫的编号之间有空格,最后一名后面没有空格!

其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。

sample input
4 3
1 2
2 3
4 3

Sample Output
1 2 4 3

解题思路
拓扑排序: 每次都取入度为0的点,把他从图上去掉,然后继续取入度为0的点,表示的是一种偏序的关系。比如,要先学高数,才能学概率论。所以拓扑排序出来,就是高数在概率论前面。

代码实现

#include<iostream>
#include<queue>
#include<vector>
using namespace std;
 
int N,M; //N--猫个数 M--M行数据 
int P1,P2; //P1胜P2 
int ans[505];   //装答案
int ai;         //ans的索引
priority_queue<int> q1;//大根堆 ----通过加入负数来实现小根堆的功能
int degree[505];  //装每个点的入度 

struct edge{
	int u_,v_;
};
vector<edge> G[505];

void add(int u,int v)   //加边
{
	edge e1;
	e1.u_=u,e1.v_=v;
	G[u].push_back(e1);
}

//初始化 
void ini()
{
	for(int i=0;i<505;++i) {
	degree[i]=0;
	ans[i]=0; 
	G[i].clear();}
	ai=0;
}

//拓扑排序 
void topo()
{
	for(int i=1;i<=N;i++)   //先把入度为0的点加入堆
	{
		if(degree[i]==0) q1.push(-i);
	}	
	while(!q1.empty())
	{
		int u=-q1.top();
		q1.pop();
		
		ans[ai++]=u;
		for(int i=0;i<G[u].size();i++) //维护入度,并把入度变为0的点加入堆
		{
			if(--degree[ G[u][i].v_ ]==0) q1.push( -G[u][i].v_ );
		}
	}
	if(ai==N) {  //如果全部都加入ans了
		cout<<ans[0];
		for(int i=1;i<ai;i++)  cout<<" "<<ans[i];
		cout<<endl;
		return;
	}
	return;
}


int main()
{
	ios::sync_with_stdio(0);
	while(cin>>N && cin>>M)
	{
		for(int i=0;i<M;i++)
		{
			cin>>P1>>P2;
			degree[P2]++; //维护入度
			add(P1,P2);			
		}
		topo();
		ini();
	}
	return 0;
}

小结
拓扑排序的思路很清晰,是这个星期最简单的一题作业。。。

海康视觉平台VisionMaster通讯实战:三种触发方式深度解析 本文深度解析海康视觉平台VisionMaster的三种通讯触发方式:字符串触发、接收字符串事件触发和轮询D地址触发。通过实际案例和配置技巧,帮助工程师在工业场景中实现高效、稳定的设备通讯,提升视觉系统的集成效率和可靠性。 阅读详情

相关推荐

DAC60501与STM32的I2C通信实战:从寄存器配置到电压输出

本文详细介绍了如何使用STM32通过I2C通信驱动DAC60501数模转换器,实现精确的模拟电压输出。内容涵盖从硬件连接到软件模拟I2C驱动编写,再到DAC寄存器配置与电压计算的全流程实战指南,并提供了关键的驱动实例代码和常见问题调试技巧,帮助开发者快速掌握这一嵌入式开发中的实用技能。

weixin_29197835的博客 368

B - 猫猫向前冲

题意介绍 N只猫比赛,给出M个输赢关系,给出符合这些关系的字典序最小的排名 题意分析 就是求字典序最小的拓扑序列,求出每个点的入度,每次从第一个点开始遍历,找到第一个入度为0的点拿出,并将它到达的各点的入度减一,再次遍历。 通过代码 #include<iostream> using namespace std; int p[510][510], in_deg[510]; int n,...

weixin_44934885的博客 214

第二章-Ethernet/IP基本概念

在I/O连接中,一旦连接建立,就不会有请求-响应数据,只会按照连接建立时指定的生产触发器所确定的时间间隔生产和消耗带有ConnectionID的数据。连接是通过连接管理器对象的Forward请求服务建立的,ForwardOpen请求包含所有连接参数,包括传输类、生产触发器、定时信息、电子密钥和连接ID。I/O适配器:I/O适配器从I/O扫描器接收隐式通信连接请求,然后以请求的速率生成I/O数据。I/O扫描器:启动与I/O适配器的隐式通信,需要处理连接的配置以及如何配置适配器。扫描器还支持启动显式报文。

_Nooice的博客 1233

猫猫向前冲【排名】【拓扑排序】【图】

问题描述 众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫。 有一天,TT 在 B 站上观看猫猫的比赛。一共有 N 只猫猫,编号依次为1,2,3,…,N进行比赛。比赛结束后,Up 主会为所有的猫猫从前到后依次排名并发放爱吃的小鱼干。不幸的是,此时 TT 的电子设备遭到了宇宙射线的降智打击,一下子都连不上网了,自然也看不到最后的颁奖典礼。 不幸中的万幸,TT 的魔法猫将每场比赛的结果都记录...

YingMila的博客 214

ROS2_Moveit2_Ur5e_Grasp项目详解(二):核心模块功能解析

本文深入解析了ROS2_Moveit2_Ur5e_Grasp项目的核心模块功能。重点阐述了OctoMap建图模块如何为机械臂提供实时三维环境感知,并详细介绍了Robotiq夹爪与MoveIt2的集成控制、UR5e的运动规划策略,以及视觉模块如何协同工作,最终实现从目标检测到动态抓取的完整闭环。

weixin_29254029的博客 113

风力摆控制系统 PCB 设计 3 要点:STM32+MPU6050+空心杯电机驱动一体化

本文详细解析了风力摆控制系统PCB设计的3大核心要点,重点介绍STM32主控、MPU6050姿态传感器与空心杯电机驱动的一体化方案。通过系统架构设计、PCB布局布线技巧以及噪声抑制方案,帮助参赛者在电子设计竞赛中构建高精度、高稳定性的风力摆控制系统,提升竞赛作品性能。

weixin_30363285的博客 361

Week8 B——猫猫向前冲

猫猫向前冲 众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫。 有一天,TT 在 B 站上观看猫猫的比赛。一共有 N 只猫猫,编号依次为1,2,3,…,N进行比赛。比赛结束后,Up 主会为所有的猫猫从前到后依次排名并发放爱吃的小鱼干。不幸的是,此时 TT 的电子设备遭到了宇宙射线的降智打击,一下子都连不上网了,自然也看不到最后的颁奖典礼。 不幸中的万幸,TT 的魔法猫将每场比赛的结果都记...

weixin_44203022的博客 176

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1385

C/C++之拓扑排序

确定节点之间的关系,输出拓扑排序的结果 #include<iostream> using namespace std; int n=4; string r[]={"a","b","c","d"};//每个点的名字 int graph[][4]={{0,1,0,0},{0,0,0,0},{0,1,0,0},{0,0,1,0}};//有向图 int vis[4];//是否被访问 in...

weixin_44575660的博客 286

面向企业架构师的 SAP BTP 全景实践:多云、账户、运行时与端到端开发路径

摘要:SAP BTP为企业提供多云、多运行时(Cloud Foundry/Kyma/ABAP Cloud)的数字化转型平台,支持快速构建扩展应用。关键选择包括:1)根据合规与性能选择区域;2)区分Trial(90天限制)与Free Tier(无期限)方案;3)按场景选择运行时(CF适合微服务/Kyma适合云原生/ABAP Cloud适合S/4HANA扩展)。建议优先使用Free Tier进行POC,并通过BTP Cockpit统一管理,实现从验证到生产的平滑过渡。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 254

全面解读 SAP Business Data Cloud

SAP 在 2025 年初正式推出(简称BDC),它把、以及全新的统一封装为一项完全托管的 SaaS 服务,配套交付“语义层 + 数据产品 + 智能应用”三层能力,为企业构建真正贴近业务语境的 “Business Data Fabric”。这一方案不仅解决了跨系统数据碎片化、治理难及 AI 训练数据可信度低的问题,还为现有 BW 客户、S/4HANA以及第三方工作负载提供云上现代化路径和零拷贝数据共享机制。本文将围绕技术架构、核心组件、业务场景、迁移路线及未来展望展开,以 Henkel 等真实案例佐证。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 909

猫猫向前冲(拓扑排序)

问题描述 众所周知, TT 是一位重度爱猫人士,他有一只神奇的魔法猫。 有一天,TT 在 B 站上观看猫猫的比赛。一共有 N 只猫猫,编号依次为1,2,3,…,N进行比赛。比赛结束后,Up 主会为所有的猫猫从前到后依次排名并发放爱吃的小鱼干。不幸的是,此时 TT 的电子设备遭到了宇宙射线的降智打击,一下子都连不上网了,自然也看不到最后的颁奖典礼。 不幸中的万幸,TT 的魔法猫将每场比赛的结果都记录...

龙征天的博客 331

YOLOv11模型剪枝实战:让检测速度翻倍,精度仅降1%的终极优化教程

模型剪枝是YOLOv11落地边缘场景的“关键一步”——它让模型在“瘦身”的同时,几乎不损失精度。从稀疏化训练到通道剪枝,再到工程部署,本教程已为你打通全流程。现在就动手尝试,让你的YOLOv11模型在嵌入式设备、移动端上也能“飞起来”——相信我,当你看到剪枝后的模型在资源受限设备上仍能精准检测时,你会明白这份技术的价值。

m0_64661770的博客 711

团队聚会 || 类似双指针法

题目 TA团队每周都会有很多任务,有的可以单独完成,有的则需要所有人聚到一起,开过会之后才能去做。但TA团队的每个成员都有各自的事情,找到所有人都有空的时间段并不是一件容易的事情。 给出每位助教的各项事情的时间表,你的任务是找出所有可以用来开会的时间段。 输入格式 第一行一个数T(T≤100),表示数据组数。 对于每组数据,第一行一个数m(2 ≤ m ≤ 20),表示TA的数量。 对于每位TA,首...

人生如逆旅,我亦是行人 2163

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

树的直径-c++

题目 实验室里原先有一台电脑(编号为1),最近氪金带师咕咕东又为实验室购置了N-1台电脑,编号为2到N。每台电脑都用网线连接到一台先前安装的电脑上。但是咕咕东担心网速太慢,他希望知道第i台电脑到其他电脑的最大网线长度,但是可怜的咕咕东在不久前刚刚遭受了宇宙射线的降智打击,请你帮帮他。 提示: 样例输入对应这个图,从这个图中你可以看出,距离1号电脑最远的电脑是4号电脑,他们之间的距离是3。 4号电...

人生如逆旅,我亦是行人 1586

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

程序设计课程 总结

总结一下我认为遇到的比较骚的操作 1.stringstream 头文件 <sstream> 用法一:多个字符串拼接 stringstream sstream; sstream<<"asd"<<" "<<"dfgdf"; 用法二: 当一行里面有多个字符串,且带有空格 我们想把他分开 用这个就特别骚 比如: wo ai zhong guo wo ai hhy 我们要读取的话 一般情况前面会有一个n,表示有多少行 string str; cin>>

人生如逆旅,我亦是行人 896

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

平衡字符串 c++ || 尺取法

题目 一个长度为 n 的字符串 s,其中仅包含 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符。 如果四种字符在字符串中出现次数均为 n/4,则其为一个平衡字符串。 现可以将 s 中连续的一段子串替换成相同长度的只包含那四个字符的任意字符串,使其变为一个平衡字符串,问替换子串的最小长度? 如果 s 已经平衡则输出0。 Inuput 一行字符表示给定的字符串s Outnput 一个整数表示答案 Ex...

人生如逆旅,我亦是行人 657

宇宙射线 c++ || DFS

题目 一个射线,初始方向向上。一段时间后会分裂,向该方向的左右45度分裂2条射线。宇宙射线会分裂那次,每次会前进ai个单位长度。 输入描述 第一行一个正整数 n (n<=30),表示分裂n次 第二行包含n个正整数a1…an,分别表示在那个方向上会走多少个单位。 样例输入 4 4 2 2 3 样例输出 39 思路 我一开始用bfs写,但是失败了,后来改用dfs。 dfs有8个方向,分别为 上...

人生如逆旅,我亦是行人 652

戴好口罩(并查集) c++

题目 新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称“新冠肺炎”,是指2019新型冠状病毒感染导致的肺炎。 如果一个感染者走入一个群体,那么这个群体需要被隔离! 小A同学被确诊为新冠感染,并且没有戴口罩!!!!!! 危!!! 时间紧迫!!!! 需要尽快找到所有和小A同学直接或者间接接触过的同学,将他们隔离,防止更大范围的扩散。 众所周知,学生的交际可...

人生如逆旅,我亦是行人 562

二分答案求中位数

题目 TT 的神秘礼物 TT 是一位重度爱猫人士,每日沉溺于 B 站上的猫咪频道。 有一天,TT 的好友 ZJM 决定交给 TT 一个难题,如果 TT 能够解决这个难题,ZJM 就会买一只可爱猫咪送给 TT。 任务内容是,给定一个 N 个数的数组 cat[i],并用这个数组生成一个新数组 ans[i]。新数组定义为对于任意的 i, j 且 i != j,均有 ans[] = abs(cat[i] ...

人生如逆旅,我亦是行人 551

POJ-2376 || 区间覆盖

区间覆盖 描述 数轴上有 n (1<=n<=25000)个闭区间 [ai, bi],选择尽量少的区间覆盖一条指定线段 [1, t]( 1<=t<=1,000,000)。 覆盖整点,即(1,2)+(3,4)可以覆盖(1,4)。 不可能办到输出-1 输入 第一行:N和T 第二行至N+1行: 每一行一个闭区间。 输出 选择的区间的数目,不可能办到输出-1 样例输入 3 10 1 ...

人生如逆旅,我亦是行人 472

程序设计week11 作业

A-必做题11-1 蒜头君从现在开始工作,年薪 NN 万。他希望在蒜厂附近买一套 6060 平米的房子,现在价格是 200200 万。假设房子价格以每年百分之 KK 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 NN 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 NN 万,房价 200200 万) 输入格式 一行,包含两个正整数 N(10 \le N \le 50)N(1...

人生如逆旅,我亦是行人 460

最大矩形 -- 单调栈

题目 给一个直方图,求直方图中的最大矩形的面积。例如,下面这个图片中直方图的高度从左到右分别是2, 1, 4, 5, 1, 3, 3, 他们的宽都是1,其中最大的矩形是阴影部分。 input 输入包含多组数据。每组数据用一个整数n来表示直方图中小矩形的个数,你可以假定1 <= n <= 100000. 然后接下来n个整数h1, …, hn, 满足 0 <= hi <= 1...

人生如逆旅,我亦是行人 445

HDU-2093 || 有处罚机制的实时评测系统

有处罚机制的实时评测系统 例如某次考试一共八道题(A,B,C,D,E,F,G,H),每个人做的题都在对应的题号下有个数量标记,负数表示该学生在该题上有过的错误提交次数但到现在还没有AC,正数表示AC所耗的时间,如果正数a跟上了一对括号,里面有个正数b,则表示该学生AC了这道题,耗去了时间a,同时曾经错误提交了b次。例子可见下方的样例输入与输出部分。 INPUT: 输入数据包含多行,第一行是共有的题...

人生如逆旅,我亦是行人 410

poj-1786 || 打牌

显然,牌局由四个人构成,围成一圈。我们称四个方向为北 东 南 西。对应的英文是North,East,South,West。游戏一共由一副扑克,也就是52张构成。开始,我们指定一位发牌员(东南西北中的一个,用英文首字母标识)开始发牌,发牌顺序为顺时针,发牌员第一个不发自己,而是发他的下一个人(顺时针的下一个人)。这样,每个人都会拿到13张牌。 现在我们定义牌的顺序,首先,花色是(梅花)<(方片...

人生如逆旅,我亦是行人 387

CSP-m3 程序设计

咕咕东学英语 咕咕东很聪明,但他最近不幸被来自宇宙的宇宙射线击中,遭到了降智打击,他的英语水平被归零了!这一切的始作俑者宇宙狗却毫不知情! 此时咕咕东碰到了一个好心人——TT,TT在吸猫之余教咕咕东学英语。今天TT打算教咕咕东字母A和字母B,TT给了咕咕东一个只有大写A、B组成的序列,让咕咕东分辨这些字母。 但是咕咕东的其他学科水平都还在,敏锐的咕咕东想出一个问题考考TT:咕咕东问TT这个字符串有多少个子串(由原字符串中位置连续的字符构成的字符串)是Delicious的。 TT虽然会做这个问题,但是他吸完猫

人生如逆旅,我亦是行人 347
上一篇: 区间选点二 || 差分约束
下一篇: 班长竞选 || Kosaraju算法
Hhhhhhhhh毅
博客等级 码龄7年 7粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值