- 博客(693)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注

原创 【OpenJudge NOI】题解目录
【OpenJudge NOI】题解目录OJ链接:OpenJudge NOI以下为本人做的OJ题解针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。作者:君义_noip1.1编程基础之输入输1 Hello, World!:点击这里2 输出第二个整数:点击这里3 对齐输出:点击这里4 输出保留3位小数的浮点数:点击这里5 输出保留12位小数的浮点数:点击这里6 空格分隔输
2021-01-16 15:57:24
26145
14

原创 【信息学奥赛一本通】题解目录
【信息学奥赛一本通】题解目录信息学奥赛一本通OJ以下本人做的OJ题解针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。作者:君义_noip基础(一) C++语言第一章 C++语言入门1001 Hello,World!:点击这里1002 输出第二个整数:点击这里1003 对齐输出:点击这里1004 字符三角形:点击这里1005 地球人口承载力估计:点击这里第二章 顺序
2021-01-12 03:35:08
85137
34

原创 本空间介绍
本人从事信息学奥赛教学工作。将在该博客分享编程、算法知识以及OJ题解。主要涉及NOIP普及组难度的知识及习题相关OJ网址:信息学奥赛一本通OJOpenJudge NOI洛谷
2020-12-24 23:45:29
1010
原创 洛谷 P1181 数列分段 Section I
每次从第1个未被选择的数字开始,选择尽量长的满足加和小于等于m的子段。表示数字序列的第i个数字。顺序遍历数组,对于每个元素。记整个数字序列为数组a,
2023-11-17 17:18:13
75
原创 信息学奥赛一本通 1435:【例题3】曲线 | 洛谷 洛谷 P1883 函数
已知f(x),g(x)两个函数的较大值h(x)=max(f(x),g(x))是下凸函数,那么多个函数的最大值。【注】:r与l差值很小时结束循环,对于一般的结果保留几位小数的问题(比如保留5位,8位等),将差值取为。已知f(x),g(x)为下凸函数,证明h(x)=max(f(x),g(x))是一个下凸函数。在定义域[0,1000]中是下凸函数(单谷函数),因此可以使用三分求单谷函数的极小值点。,即为所有二次函数当自变量为x时的所有函数值的最大值。,所以所有的二次函数都是开口向上的,为下凸函数。
2023-11-17 14:39:43
101
原创 信息学奥赛一本通 2077:【21CSPJ普及组】小熊的果篮(fruit) | 洛谷 P7912 [CSP-J 2021] 小熊的果篮
交替在st0与st1中选择数字,下一次在另一个集合中选择出的数字要比上一次选择出的数字更大,并删除数字。如果当前fruit链表在删除数字后,成为空链表,那么需要在block链表中删除该空链表,并判断前一个链表和后一个链表的水果种类是否相同,如果相同,则合并两个单链表(即把后一个链表接到前一个链表的后面)。每次遍历block链表,在block链表中的每个“块”中(fruit链表)取第一个数字输出,并删除fruit链表中的第一个数字。创建一个block双向链表,block链表中的每个元素都是一个“块”。
2023-10-09 20:08:48
433
原创 洛谷 P1148 拱猪计分
设布尔数组h,用来记录是否有牌Hi。设布尔变量s12, d10, c10,表示是否存在S、D和C牌。D10与D11都可能出现,D10作用与D11相同。如果D10与D11同时出现,只算有1张D牌。当H1~H13都有,但D或S只有1个时:D牌作用:-100分,S牌作用:+100分。按照题目描述,根据该玩家手中存在的牌的种类,计算分数。
2023-10-04 14:33:30
334
原创 洛谷 P1151 子数整数
枚举10000~30000的每一个数字,通过计算得到该五位数字分解出的。,是x的中间3位,要取到中间3位的方法是:x/10%1000。,是x的中间3位,要取到最后3位的方法是:x%1000。枚举10000~30000的每一个数字,对于一个五位数字。,判断这三个数字是否都是k的倍数(除以k的余数为0),是x的前3位,要取到前3位的方法是:x/100。判断是否有输出,如果没有输出,则输出No。判断这三个数字是否都是k的倍数,是则输出。这三个数字都是k的倍数,则输出该数字,将。最后如果没有输出数字则输出No。
2023-10-04 09:38:06
354
原创 信息学奥赛一本通 2075:【21CSPJ普及组】插入排序(sort) | 洛谷 P7910 [CSP-J 2021] 插入排序
对于相同的数值,在原数组中下标更大的元素应该排在后面。对于相同的数值,在原数组中下标更小的元素应该排在前面。先根据题意,使用索引数组完成插入排序,注意交换元素时需要使用我们定义的。sa与as保存的就是原数组a与目标数组s之间的两个方向的映射关系。主函数中,首先输入a数组,初始状态下s数组与a数组相同,满足。假想存在排序后的目标数组s,设数组sa为索引数组,表示。开始,不断变大,向后遍历s数组,直到j为n-1。开始,不断变小,向前遍历s数组,直到j为2。在排序后的s数组中的下标,也就是。
2023-09-26 17:12:55
681
1
原创 信息学奥赛一本通 2074:【21CSPJ普及组】分糖果(candy) | 洛谷 P7909 [CSP-J 2021] 分糖果
根据上述规律,x从l变化到r的过程中,x%n的值是逐渐增大的,当x为r时,x%n的值最大,为。这似乎是在做取模运算。,那么从l到r范围内一定存在一个数字x%n为n-1,一定存在一个数字x%n为0。其中,x%n的值每“段”从0变到n-1,都满足x/n的值是不变的。下图横轴为x,纵轴为x%n,L,R为满足该描述的一种可能的情况。下图横轴为x,纵轴为x%n,L,R为满足该描述的一种可能的情况。可以看到,x%n的值始终是从0变到n-1,再从0变到n-1。,x/n的值始终是m,而x%n的值从0变化到n-1。
2023-09-25 20:56:10
379
2
原创 信息学奥赛一本通 2086:【22CSPJ普及组】乘方(pow) | 洛谷 P8813 [CSP-J 2022] 乘方
设r为累乘乘积,初值为1。如果在循环求幂的过程中,若发现r大于。,可以使用long long类型保存该值。因此当a=1时,应该直接输出1。,则直接输出-1,而后结束程序。的数字相乘,结果不会超过。
2023-09-25 19:56:32
293
原创 # CSP-J 2023 第一轮试题(初赛)
答:选B。声明常量的格式是 const 数据类型 常量名 = 常量值;123456708076543218222222218211111118221111118222222118答:选D列竖式,两数相加,逢8进1。123456700765432122222211答:选A。考察联合体union。
2023-09-23 15:18:42
555
2
原创 CSP-J 2023 入门级 第一轮 完善程序(2)
i为0时,str1的前0个字符转变为str2的前j个字符的操作方案为j次插入,操作次数为j。j为0时,str1的前i个字符转变为str2的前0个字符的操作方案为i次删除,操作次数为i。就是str1的前i-1个字符转变为str2的前j-1个字符的最少操作次数,(4)填B。,那么接下来要将str1的前i-1个字符转变为str2的前j-1个字符,(5)填C。指表示str1的前i个字符转变为str2的前j个字符的最少操作次数。就是最后一次进行插入、或删除、或修改时的最少操作次数。如果str1第i字符。
2023-09-22 21:30:06
248
原创 CSP-J 2023 入门级 第一轮 完善程序(1)
也就是说如果丢失的数字是n+1个数字中的第1个或最后一个,find_missing函数会返回(5)处应该填的值,此时整个序列就是连续的。while循环跳出后,left或right的值就是找到的是"大于缺失数字"的最小值的最小下标,该下标就是上表中的m,缺失的值应该是。该题要找的是缺失的数字,那么二分查找的条件就可以是“大于缺失数字”,二分查找后找到的是“大于缺失数字的最小值的最小下标”。如果去掉的数字就是第一个数字s,或最后一个数字,整个序列是连续的序列,无论mid为何值,都满足。
2023-09-22 21:10:54
272
1
原创 CSP-J 2023 入门级 第一轮 阅读程序(3)
如果n是2,第一项是4的所有因数1,2,4的平方和,是21。第二项是2的所有因数1,2的平方和5的平方为25。27. 如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )27. 如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )30. 如果输入的n为质数p的平方,那么solve2(n)的返回值为( )30. 如果输入的n为质数p的平方,那么solve2(n)的返回值为( )因此solve2(n)求的是n的所有因数的平方和。的所有因数的平方和。
2023-09-21 21:49:53
222
原创 CSP-J 2023 入门级 第一轮 阅读程序(2)
f函数求x与y的最长公共子序列的长度,两字符串最长公共子序列的长度不会大于两字符串中任意一个字符串,最长时也就是与两字符串中更短的字符串一样长。当x与y相同时,x+x中一定存在子串y(即子串x),子串就是子序列,所以x+x与y的最长公共子序列的长度就是y的长度,g函数返回真。如果输入的x与y长度相等(空字符串无法输入,字符串长度最小为1),在g函数中调用的是f(x+x, y),运行到函数内部,主函数,输入x,y字符串,输出x+x是否存在一个子序列是y字符串,如果存在输出1,否则输出0。
2023-09-21 21:01:30
210
原创 CSP-J 2023 入门级 第一轮 阅读程序(1)
主函数中前两句是用于设定浮点数输出格式,输出时固定保留4位小数,最后一位四舍五入,不足4位则补0。很明显,a,b,c是三角形的三条边,s是半周长,f函数为使用海伦公式求三角形的面积。16. 当输入为"2 2 2"时,输出为"1.7321"( )16. 当输入为"2 2 2"时,输出为"1.7321"( )运行这两句后,设置了输出浮点数的格式为保留4位小数输出。20. 当输入为"5 12 13"时,输出为( )19. 当输入为"3 4 5"时,输出为( )19. 当输入为"3 4 5"时,输出为( )
2023-09-21 18:23:06
353
2
原创 信息学奥赛一本通 1984:【19CSPJ普及组】纪念品 | 洛谷 P5662 [CSP-J2019] 纪念品
结合购买纪念品的背景,每件商品可以购买无限件,因此在第i天买入商品,到第i+1天卖出所有商品,想要赚到最多的钱币,该问题实际是一个完全背包问题。到第二天,又可以卖出商品换钱了,因此只需要考虑商品在当天及第二天的差价,差价越高,今天买该商品,到第二天升值越多。由于小伟每天都可以买卖物品无限次,我们可以假想每天开始时,他把所有的商品都卖出,看用手中的钱该买哪些商品。
2023-08-19 12:17:50
480
原创 信息学奥赛一本通 ybt 1975:【16NOIP普及组】海港 | 洛谷 P2058 [NOIP2016 普及组] 海港
每条船为一个元素,包含属性vector类型的nation,保存所有人的国籍,以及time表示时间。设结构体Peo表示一个人,每个人包含属性:时间time、国籍nation。,这样可以节省空间。如果设为数组,则会内存超限。,可以把每个人作为一个元素保存在队列中。每次有船到岸,就输出一下国籍总数。每次有船到岸,就输出一下国籍总数。由于人数总和(即k的加和)最大为。注意:nation必须设为。表示第i国籍的人数。
2023-08-19 11:36:11
336
原创 CSP-J 2020 入门级 第一轮 完善程序(2)
明显这是数组填充的过程,p是数组中已有的元素个数,填充到下标0~p-1。ans是选择的区间数量,r为上文提到的关注点(上一个选择的区间的右端点),q是数组A的下标,初值为0。要想选择“包含关注点的区间”,应该按区间的左端点从小到大进行排序。:在最优解包含前k次的贪心选择的情况下,存在最优解包含第k+1次的贪心选择。:最优解包含第一次的贪心选择:在所有包含0的区间中,选择右端点最大的区间。这一次选择的,也就是唯一包含第0位置的区间,记该区间为。这样做的结果是,经过再次填充后的数组A,关于右端点。
2023-05-19 17:47:55
1193
原创 CSP-S 2022 提高级 第一轮 阅读程序(1) 第16-21题
shift后面的括号中传入两个参数,这是使用了vector的构造函数,传入的第1个参数表明初始化元素的个数,第二个参数是每个元素的值。是字符,作为shift的下标,也就是以字符的ASCII码为下标,这也对应了shift中要有128个元素。21. 当输入为“baaabaaabaaabaaaa aaaa”,第 20 行的“j++”语句执行次数为( )。匹配1个a,j++执行1次,遇到b与a不相等。i为13,执行字符串最后aaaa中的第1个a,与模式串aaaa匹配4个a,j++执行4次。
2023-05-11 14:31:30
1596
1
原创 洛谷 P1141 01迷宫
尝试从每个顶点出发进行搜索(可以使用深搜获广搜),搜索一个格子周围的满足:在地图内,未访问过,与当前格子的数值不同的格子。一趟搜索标记的格子属于一个连通块(无向图连通分量)。每个格子是一个元素,每个连通块(连通分量)是一个集合。使用并查集合并相邻的数值不同的格子,同时统计每个格子中元素数量。如果网格有n列,则从1开始的坐标(x, y)可转为(x-1)*n+y。在询问某位置时,输出该位置所属的连通块的格子数量。查询某格子时,输出该格子所在集合的元素数量。统计每个连通块中格子数量。
2023-05-02 11:49:54
544
原创 信息学奥赛一本通 1352 【例4-13】奖金
拓扑排序的过程中,顶点u访问邻接点v,存在弧,v的奖金应该比u的奖金至少高1,应该用。因此可以这样定义边:如果b的奖金比a高,那么存在有向边。如果a奖金比b高,应该先确定b的奖金数,再确定a的奖金。统计算法进行过程中入度变为0的顶点数量num。图中入度为0的顶点的奖金为100。设数组money,顶点i的奖金为。
2023-04-15 00:27:02
1136
原创 洛谷 P7771 【模板】欧拉路径
如果该图出度比入度大1的顶点数与入度比出度大1的顶点数都为1,那么该图是半欧拉图。为了输出字典序最小的序列,将保存邻接点的每个vector排序。从起点出发,调用Hierholzer算法,输出欧拉路径。输入边的同时,统计顶点的入度和出度。如果该图入度都等于出度,是欧拉图。判断有向图有欧拉路径的条件。,只能使用邻接表存图。
2023-04-15 00:03:18
1083
原创 洛谷 P1341 无序字母对
给定n个不同的字母对,也就是n个不同的边(没有重边),要得到一个有n+1个字母的字符串,每个字母对都出现。相邻两个字母是一个字母对,n+1个字母的字符串中可以出现n个字母对,也就是说给定的n个字母对都要出现。每个字母是一个顶点,每个字母对是一条边。“无序即字母对中的两个字母可以位置颠倒”,意味着这样的边连接的两个字母没有先后顺序,是无向边,形成的图是无向图。该字符串相当于图中的一条路径,字符串中相邻的字母构成的字母对是一条边。该问题抽象为:每个字母是一个顶点,每个字母对是一条边,求该无向图中的欧拉路径。
2023-04-14 17:34:05
1041
原创 信息学奥赛一本通 1385:团伙(group) | 洛谷 P1892 [BOI2003]团伙
也就是说一个人的所有敌人都互为朋友,同属于一个集合。,集合的数量就是fa数组中根结点的个数。每个人是一个元素,一个团伙是一个集合。并查集中每个集合的根结点满足。因此,设数组enemy,表示i的某一个敌人。最后输出集合的数量。
2023-04-14 15:30:29
1307
原创 信息学奥赛一本通 1523:嗅探器 | 洛谷 P5058 [ZJOI2004]嗅探器
首先不能考虑根结点是割点的情况,根结点st是蓝军信息中心,红军的嗅探器只能放在中间服务器上,不能放在信息中心。因此,如果可以在u处放嗅探器,信息中心ed必然应该在DFS生成树中的以割点u为根结点的子树中。假设合理的可以作为嗅探器的割点为u,删掉u后,st与ed必然存在于两个不同的连通分量。思考从顶点st(一个蓝军信息中心)出发,进行深搜,得到DFS生成树,树根是st。从顶点S出发,调用tarjan算法,求出图中的割点,判断该割点是否可以放嗅探器。求所有满足条件的可以放嗅探器的顶点的最小值,即为结果。
2023-04-07 21:19:17
800
原创 洛谷 P5657 [CSP-S2019] 格雷码
当n为1时,只有1位格雷码。k为0时,第0号格雷码为"0"。k为1时,第1号格雷码为1。推导对于正向、逆向都从0开始数的长为n的序列,逆向第i个数字是正向第几个数字。如将k转为二进制数后共有m位,从低位到高位的编号为0, 1, …号二进制串,在前面再加上前缀1,即为n位格雷码的第k号二进制串。k1的第i位就是k的第i+1位。要查询的是n位格雷码的第k号二进制串,先比较k与。第3位为1,第2位为1,第1位为0,第0位为1。例:k为13,二进制编码为:1101,:求n位格雷码中的第k号二进制串。
2023-04-06 16:55:56
1079
原创 信息学奥赛一本通 1386:打击犯罪(black)
从一个空白的图开始,从顶点n到顶点1取每个顶点加入到图之中,针对每个顶点与图中已有顶点之间的边,进行合并操作。合并后只有该顶点所在的连通分量的数量发生了变化,因此只需要判断该连通分量中的顶点数是否大于n/2。“最大的犯罪团伙的危险程度不超过n/2”,即为顶点数量最多的连通分量的顶点数量小于等于n/2。按顺序打击团伙,相当于删掉当前图中的顶点,而后统计图中每个连通分量的顶点数量,这一过程过于繁琐。每个犯罪团伙是一个顶点,犯罪团伙之间的联系是边,每个犯罪集团是一个连通分量。
2023-04-02 00:37:29
1419
2
原创 信息学奥赛一本通 1374:铲雪车(snow)
铲雪车从起点出发,按照欧拉回路顺序走遍图中的每条边(车道),最后回到起点,可以完成铲雪。根据输入,使用两点间距离公式求出每条道路的长度,乘以2后就是所有车道(所有边)的总长度,除以行车速度,即可得到花费的总时间。所有的道路都是双车道,对于一条道路,铲雪车每次经过道路只能铲掉一侧的雪,需要来回走两趟才能完全清除这条道路上的雪。该图一定存在欧拉回路。该图是有向图,将每个路口视为顶点,每条车道是一条有向边,每条道路即为双向的有向边。要想完成对所有道路铲雪,也就是要把每条边都走一次,这是一个求欧拉路径的问题。
2023-04-01 01:15:26
984
原创 信息学奥赛一本通 1347:【例4-8】格子游戏
学习并查集时,每个元素都由一个整数来表示。而该问题中每个元素是一个坐标点,由(x, y)两个整数构成。如果并查集中的元素不为整数,可以将fa数组改为映射(map类型),同时find、merge都发生改变。例:假设坐标点是2行3列的,每个位置的坐标为x, y,转变后的数字为d,记为(x, y):d。通过一个公式将二维坐标换算为一个整数,用这个整数代表该二维坐标。在输入时,使用find直接判断两个数对元素是否在一个集合中。每输入一个坐标(x,y),求出其对应的数字f。把每个坐标都用一个数字表示。
2023-04-01 00:47:46
800
原创 信息学奥赛一本通 1375:骑马修栅栏(fence) | 洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences
从起始顶点出发,进行深搜,使用Hierholzer算法求欧拉路径。为了满足条件,必须按顶点编号从小到大访问一个顶点的所有邻接点。只需要在实现Hierholzer算法时,包括选择起始顶点或某顶点的邻接点时,尽量选择编号较小的顶点来访问即可。“两顶点间可能有多个栅栏”意味着可能有重边,但Hierholzer算法可以处理有重边或自环的图。“输出500进制表示法中最小的一个”,即为输出字典序最小的欧拉路径顶点序列。在输入边时,统计顶点编号的最大值,作为总顶点数量。该图是无向图,顶点就是图中的顶点,栅栏是边。
2023-04-01 00:29:50
1426
原创 信息学奥赛一本通 1341:【例题】一笔画问题
遍历选择起始顶点,如果v的度为奇数,那么选择该顶点为起始顶点。否则起始顶点默认为1号顶点。顶点数n最大为100,可以使用邻接矩阵或邻接表解决。求解欧拉回路使用Hierholzer算法。该题默认一定有欧拉路径或欧拉回路。使用Hierholzer算法可以在。的时间复杂度内求出欧拉回路。
2023-03-31 18:27:26
1011
原创 信息学奥赛一本通OJ勘误
更改描述:“每对成虫过x个月产y对卵”改为:“每对成虫过x个月后每个月产y对卵”尽管如此,该网站还是有一些错误,在此指明。瑕不掩瑜,希望网站作者早日修正。题目中概念错误,应该把所有的“逆波兰表达式”改为“波兰表达式”。应该添加Special Judge,但没有。1312:【例3.4】昆虫繁殖。1527:【例 1】欧拉回路。1198:逆波兰表达式。
2023-03-31 12:32:34
470
原创 信息学奥赛一本通 1384:珍珠(bead)
k, i, j三重循环,如果i到j的重量关系还没确定(每颗珍珠是一个顶点,初始情况下,如果i比j重,那么i到j有一条弧。为真,即i比j重,那么比i轻的珍珠的数量增加1,比j重的珍珠数量增加1。已知n是奇数,那么n/2(n整除2)的结果等于(n-1)/2。先输入已知的相对重量关系,如果输入了x,y,那么x比y重,将。),但是i比k重,k比j重,那么一定有i比j重。记录比j重的珍珠的数量。统计不可能是中间重量的珍珠的数量,输出结果。设布尔类型数组e,为该图的传递闭包,即。记录比i轻的珍珠的数量,
2023-03-28 17:15:55
880
原创 信息学奥赛一本通 1388:家谱(gen) | 洛谷 P2814 家谱
每输入一个名字,都先检查一下name2Num中是否有以该名字为键的键值对(即该名字是否出现过),如果之前没出现过,则为该名字分配一个新的编号。而后该名字对应的编号为。每个人都是用一个整数来表示的,那么就可以用树的双勤表示法(也就是并查集中的fa数组)来表示所有人之间的关系。模仿并查集中的查询操作,写出find函数,求x的祖先。保存的键值对为(名字,编号)。保存的键值对为(编号,名字),可以将编号转为名字。设置将名字与整数互相转换的映射。表示名字为x的人的父亲的名字。为编号为x的人的父亲的编号。
2023-03-24 17:09:14
642
原创 洛谷 P1536 村村通
这是个无向图,每个城镇是一个顶点,每条道路是一条边。“任何两个城镇间都可以实现交通”,即为任意两顶点间有路径。每个连通分量是一个集合,遍历所有的边,让每条边连接的两个顶点所在的集合合并。最后集合的数量即为连通分量的数量。尝试从每个顶点出发进行搜索,可以进行深搜或广搜,标记访问过的顶点。成功开始搜索的次数即为连通分量的个数。当前该图未必是连通图,问想让该图变为连通图最少还需要添加多少条边。显然,需要添加边的条数为该图中连通分量的数量减1。求一个图的连通分量数量,有两种方法。
2023-03-23 15:46:56
266
原创 洛谷 P3916 图的遍历
建立原图的反图,编号从大到小遍历各个顶点,在反图上从该顶点出发进行深搜,看从该顶点出发可以到达哪些顶点。如果在原图中,顶点v能够到达的编号最大的顶点是u,那么在反图中,顶点u到顶点v一定有路径。
2023-03-23 15:12:25
385
原创 洛谷 P1113 杂务
即便没有这个条件,我们也可以先做拓扑排序,得到的序列一定满足序列中第i项工作的准备工作都在第1至第i-1项工作中。建图时,改为建反图,即如果杂务A是杂务B的准备工作,那么让B到A有一条有向边。首先对该问题进行抽象,每项杂务是一个顶点,如果杂务A是杂务B的准备工作,那么A到B有一条有向边。求所有u的准备工作的结束时间的最大值,即为u的开始时刻,再加上完成u的时间。每确定一项杂务u的完成时刻,就更新该顶点u的邻接点v的完成时刻。对于入度为0的顶点i,该杂务的完成时刻就是完成该杂务的时长。
2023-03-22 19:27:31
439
原创 信息学奥赛一本通 1383:刻录光盘(cdrom) | 洛谷 P2835 刻录光盘
资料分发的过程类似于深搜,如果一个顶点出发进行深搜,那么该顶点所在强连通分量中的顶点都会被访问到。即如果一个人收到资料,那么该人对应的顶点所在强连通分量中的所有顶点所表示的人都会收到资料。两种算法都是先求强连通分量,而后求每个强连通分量的入度,统计入度为0的强连通分量的数量即为需要分发的光盘数量。设并查集,每个集合表示图中的一棵子树,该子树有唯一的入度为0的根结点。将该图缩点,每个顶点代表一个强连通分量,求出每个强连通分量的入度。因此发放光盘的数量,就是将该图缩点后,入度为0的强连通分量的数量。
2023-03-15 01:28:48
930
2
Java控制台猜数字游戏
2011-06-28
c++重载输出流运算符<<时,为什么不能输出表达式的值
2022-01-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人