- 博客(747)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 【CSP认证 第一轮 初赛】部分题解目录
CSP-J 2021 第一轮 题解][CSP-J 2020 第一轮 题解][CSP-J 2019 第一轮 题解]
2024-11-01 23:17:24 246
原创 【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 55355 20
原创 【信息学奥赛一本通】题解目录
【信息学奥赛一本通】题解目录信息学奥赛一本通OJ以下本人做的OJ题解针对每一道题我都会给出题目考点、解题思路、题解代码。必要时也会给出不同的解题方法。本人水平有限,如有不足之处,欢迎大家指正。如看过后还有不明白的地方,欢迎在评论区留言。作者:君义_noip基础(一) C++语言第一章 C++语言入门1001 Hello,World!:点击这里1002 输出第二个整数:点击这里1003 对齐输出:点击这里1004 字符三角形:点击这里1005 地球人口承载力估计:点击这里第二章 顺序
2021-01-12 03:35:08 160575 40
原创 本空间介绍
本人从事信息学奥赛教学工作。将在该博客分享编程、算法知识以及OJ题解。主要涉及NOIP普及组难度的知识及习题相关OJ网址:信息学奥赛一本通OJOpenJudge NOI洛谷
2020-12-24 23:45:29 1278 1
原创 信息学奥赛一本通 1443:【例题4】Addition Chains | OpenJudge 百练 2248:Addition Chains | 洛谷 UVA529 Addition Chains
在确定第k个数字前,已经确定的数字有k-1个,当前这一趟搜索的最大搜索层数为maxDep,也就是这一趟搜索得到的序列都有maxDep个数字,看是否存在第maxDep个数字是n的情况。我们可以让每次生成的数字一定大于这个序列中的最后一个数字,保证序列是升序的,这样可以避免重复搜索到相同的序列。,则后面即便每次都添加可能的最大的数字,得到的第maxDep个数字的最大值也小于n,第maxDep个数字不可能为n,因此可以剪枝。该题要找到序列长度最短的,序列的最后一个数字(也就是最大值)为n的序列。
2024-12-11 16:12:55 744
原创 信息学奥赛一本通 1433:【例题1】愤怒的牛 | 洛谷 P1676 [USACO05FEB] Aggressive cows G | OpenJudge 百练 2456:Aggressive cow
如果我们求出在任意相邻两头牛之间的距离都大于等于k的前提下,可以放入隔间的牛的最大数量,只要这个最大数量大于等于c,就说明可以在隔间中放入c头牛。正向思路是:搜索所有将牛放入隔间的方案,确定每种方案中两头牛之间的最小距离,而后比较各个方案中两头牛之间的最小距离,求最大值。该题求的是“任意两头牛之间的最小距离的最大值”,即最小值最大的问题,看到这样的题面,应该最先想到使用二分答案。:相邻牛之间的距离大于等于k的前提下,可以放入隔间的最多的牛的数量大于等于c。使用求满足条件的最大值的二分答案写法,求出答案。
2024-12-09 23:00:18 621
原创 信息学奥赛一本通 1442:【例题3】小木棍 | 洛谷 P1120 小木棍
如果是情况1,留下几根长度加和为i的木棍,这些木棍可以合起来,当做一个长为i的木棍,此时这几根长度加和为i的木棍的作用和一根长度为i的木棍的作用相同。深搜时需要记录的状态有:这一次要选择的木棍长度st,当前拼出的木棍长度len,剩余要拼的原木棍数量stickNum,要拼成的原木棍长度stickLen。如果后面不存在长度加和为i的几根木棍,则无法拼成这根原木棍,则当前的拼接过程应该结束,应该返回上一层,改变上一根选择的木棍。已经提到的:先选较长的小木棍,再选较短的小木棍(表示长度为i的木棍的数量。
2024-12-09 16:00:34 918
原创 洛谷 P10377 [GESP202403 六级] 好斗的牛
对于每种牛编号的排列,相邻的两头牛之间的空牛棚的长度都取最小长度,那么对于每种牛的排列,都存在一个最小的总牛棚长度len,能够把所有的 n 头牛都安置牛棚里。最后ans即为结果。每层搜索确定第k个放入牛棚的牛的第几号牛,记录上一次选择的牛所在的牛棚lastPos,和上一次选择的牛的编号lastCow,枚举所有牛的排列,求出每种排列下的最小总牛棚长度len,比较得到最小值,即为结果。如果相邻的两头牛,坐标是编号为i的牛,右边是编号为j的牛,那么第i号牛右侧。个牛棚不能有牛,这两头牛之间空牛棚的最小的长度为。
2024-12-04 21:41:49 1067
原创 信息学奥赛一本通 1887:【15NOIP提高组】神奇的幻方 | 洛谷 P2615 [NOIP2015 提高组] 神奇的幻方 | 洛谷 B3940 [GESP样题 四级] 填幻方
的值已经不为0(a数组初值为0,要填的数字都是正整数,因此如果此处的值不为0,就是已经填充过数字),那么重新确定下一个位置(tx, ty)。根据该问题的描述,需要通过当前焦点位置(x,y)和焦点移动规则找到下一次要填充的位置(tx, ty)。两个问题都需要使用“焦点移动”的思路,设(x,y)为焦点位置,表示当前要填充数字的位置。下一个位置所在列是前一个位置的下一列。题目中“(K-1)所在的位置”就是我们上一次填充时的焦点位置(x,y)。确定下一个位置为(tx, ty)后,将(x,y)设为(tx,ty)。
2024-12-04 16:47:35 814
原创 洛谷 B3851 [GESP202306 四级] 图像压缩
所有的颜色数值为0~255,对每种颜色数值,构造出一个结点Node,加入到一个顺序表(vector)中,而后对该顺序表排序。根据题目的要求,排序规则为:颜色出现次数大的排在前,如果颜色出现次数相等,则颜色数值小的排在前。取前16种颜色为压缩后的颜色,压缩后的颜色数值为0~15。遍历0~255的每种颜色col,求出它和压缩后的颜色中哪种颜色的差值的绝对值最小,那么就需要将当前颜色col转为哪一种压缩后的颜色,将该数值记录在。对于数值为0~255的所有颜色,每种颜色都需要转为压缩后的颜色。
2024-12-04 15:00:56 462
原创 信息学奥赛一本通 1436:数列分段II | 洛谷 P1182 数列分段 Section II
此处可以进行反向思考,上来就确定子段划分的最大子段和不能超过某一数值,而后看否存在满足这一要求的子段划分方案。该题求的是不同的将序列划分为M个子段的方案中的最大子段和的最小的方案的最大子段和,这是求满足某一条件最小值的问题,可以使用相应的二分答案写法完成。答案x需要满足的条件为:在最大子段和小于等于数值x的前提下,是否可能存在一种将序列划分为M个子段的划分方案。我们可以通过贪心算法求出:在所有子段的子段和都小于等于数值x的前提下,序列可以划分成的最少子段数,具体方法见。最后输出二分答案的结果。
2024-12-02 23:18:00 440
原创 信息学奥赛一本通 1448:【例题1】电路维修 | 洛谷 P4667 [BalticOI 2011 Day1] Switch the Lamp On 电路维修
该题求的是从左上角(0,0)到右下角(n,m)有导线通路的最小转动正方形的次数,即为拓扑图中从顶点(0,0)到顶点(n,m)的最短路径长度,可以使用双端队列广搜完成。因为这一次扩展得到的路径长度dis一定大于等于前一次扩展得到的路径长度dis,对于求最短路问题而言,这一次扩展到的结果一定不是最优解,没有必要仅扩展。设从顶点(sx,sy)在d方向扩展到的下一个顶点为(x,y),那么。第i行第j列顶点(i,j)是第i行第j列正方形的左上角顶点。个顶点,各顶点所在行号范围为0~n,列号范围为0~m。
2024-11-29 23:53:21 1066
原创 信息学奥赛一本通 2078:【21CSPS提高组】廊桥分配(airport) | 洛谷 P7913 [CSP-S 2021] 廊桥分配
当遍历到到达时间为l,离开时间为r的飞机时,首先将pqOccu中飞机离开时间小于等于l的廊桥都出队,出队的廊桥变为空闲廊桥,将这些廊桥编号入队pqIdel。而后枚举国内和国际航班廊桥的数量,设国内航班设i个廊桥,国际航班就有n-i个廊桥,从0到n枚举i的所有情况,当i确定时,停靠在廊桥的飞机数量为。一共n个廊桥,要分配给国内和国外航班,枚举所有分配情况,在一种分配下,国内、国际航班的廊桥数量是固定的。这里我们可以假想有无限个廊桥,设m是国内航班飞机数量,那么最多设置m个廊桥即可让所有飞机都停靠在廊桥。
2024-11-28 17:49:46 769
原创 信息学奥赛一本通 1395:烦人的幻灯片(slides)
但实际情况是幻灯片是透明的而且可能是重叠的,编号的颜色都是相同的,一眼看上去看不出一个编号是写在哪张幻灯片上的。每次循环出队一个顶点X,如果到达顶点X的边只有一条,是从顶点Y出发到顶点X的边,那么顶点X的入度为1,这意味着顶点X代表的编号只存在于顶点Y代表的幻灯片的范围内,因此顶点X代表的编号一定为顶点Y代表的幻灯片的编号。如果最后删掉的表示编号顶点的数量小于n,说明最后有一些编号不能确定到底算是哪个幻灯片的编号,编号和幻灯片有多种对应关系,或没有对应关系,应该输出None。先将所有入度为1的顶点入队。
2024-11-06 22:36:47 441
原创 信息学奥赛一本通 1394:连接格点(grid)
而后执行Kruskal算法,不断选择权值最小的边,如果该边两端的顶点不在同一集合(连通分量)中,就将两顶点所在集合合并。(如果当前权值最小的边是已连线的边,那么该边的两个顶点一定已经在同一集合中,不会进行再次合并。题目中给的是坐标,我们需要把坐标数对和表示顶点编号的整数对建立映射关系,这样就可以通过坐标取到对应的顶点。每个点和其上下左右点都可以连线,相邻点之间当做有一条边,纵向的边权值为1,横向的边权值为2,建图。,每个顶点向右、向下连接一条边,连出的边数和图中的总边数接近,因此边数最大大约会达到。
2024-11-02 22:24:25 1043
原创 信息学奥赛一本通 1393:联络员(liaison)
管理员是顶点,通信渠道是边,要使管理员两两都可以联络,就是使任何两个顶点之间有路径,也就是让整个图是连通图。该问题可以抽象为:无向图中给定n个顶点,和m条边,有一些必选边,在其它可选边中选择一些边,使得顶点和选择出来的边构成一个连通图,求在不同选择边的方案中,求选择的边的权值加和的最小值。实际写代码不用进行缩点,先将所有必选边相连的顶点合并集合,而后再跑Kruskal算法,每次循环选权值最小的未选边,如果其连接的两个顶点不在同一集合(连通分量)中,亦即添加该边后不会形成环,就将两顶点所在集合合并。
2024-11-02 00:17:47 300
原创 CSP-S 2023 提高级 第一轮试题(初赛)答案及解析
答:Bmkdir是Linux中新建目录文件的指令,其它选项都不是Linux指令答:A最高位数只能从1,2,3,4中四个数中选,有C41种情况,而后3位数可以从剩下的4个数字中选择,选出来后再排列到3个位置上,是从4个数中选出3个数的排列,有P43种情况,共有C41∗P434∗4∗3∗296种情况,选A。
2024-11-01 22:50:55 1082
原创 信息学奥赛一本通 1441:【例题2】生日蛋糕 | OpenJudge NOI 4.7 192:生日蛋糕 | 洛谷 P1731 T148457 [NOI1999] 生日蛋糕
根据这一原理,在搜索到第i层时,在剩余待确定体积固定的情况下,如果第1到第i-1层的半径和当前第i层的半径相同时求出第1到第i-1层的表面积加和,一定比第1到第i-1层半径比第i层更小时得到的表面积更小。的最大值:第1到第M-1层都取最小体积时,第M层体积最大,此时第M层高度取1,半径最大。从第M层开始逐层向上搜索,一直搜索到第1层,在确定第M层的半径后,将ans初值设为。后,枚举第i层高度,第i层高度最小为i。那么可以求出每层的最小体积,第i层的最小体积为。,以及第1层到第i层的最小总体积。
2024-10-31 17:48:19 1049
原创 信息学奥赛一本通 2100:【23CSPJ普及组】一元二次方程(uqe) | 洛谷 P9750 [CSP-J 2023] 一元二次方程
先根据x、y的符号确定是否输出负号。接着求出x、y的最大公约数g,使x、y分别除以最大公约数,得到a、b,根据题目要求,针对a、b都为1,其中一个为1,和都不为1的情况,按照不同的格式输出。如果x、y不同号,先输出负号。接着求出x、y的最大公约数g,使x、y分别除以最大公约数,而后输出,即可得到最简分式。,则将等式两边乘以-1,也就是a、b、c都取自己的相反数,保证。设函数showNum完成有理数输出:给定整数x、y,输出。对一元二次方程求根的过程,并按照题目要求完成输出。该题要求输出较大根。
2024-10-07 08:34:45 1075
原创 信息学奥赛一本通 2087:【22CSPJ普及组】解密(decode) | 洛谷 P8814 [CSP-J 2022] 解密
使用枚举算法,求方程组的解,在输入数据较小时可以得到解。必须是完全平方数,开方后是一个正整数。因此是一个二元方程组求解的问题。由于p、q都是正整数,那么首先。已知一元二次方程两根分别为。显然p、q是一元二次方程。输入n,d,e,满足。该代码得分:60分。输出,先输出较小的根。
2024-10-05 15:54:59 812
原创 信息学奥赛一本通 1885:【14NOIP提高组】寻找道路 | 洛谷 P2296 [NOIP2014 提高组] 寻找道路
先求path数组,需要对原图建反图,而后从终点t开始进行广搜,广搜过程中访问到的顶点x,表示在反图中从t出发到顶点x有路径,也就是在正图中从顶点x到终点t存在路径。而后遍历所有顶点,对于顶点i,如果i到t有路径,且i的邻接点到t都有路径,那么顶点i可以作为符合条件的路径上的点。最后从起点s出发进行广搜,求符合条件的路径的最短路径长度。求出从s出发到所有满足。为真表示顶点i可以作为该题要选择的符合条件的路径上的点。表示顶点i出发到终点t是否有路径。为真的顶点i的最短路径长度。
2024-10-05 10:28:15 470
原创 信息学奥赛一本通 2098:【23CSPJ普及组】小苹果(apple) | 洛谷 P9748 [CSP-J 2023] 小苹果
每天每隔两个苹果拿一个苹果,设共有n个苹果,那么拿走的苹果为第1, 4, 7, …, 3k+1个苹果。也可以理解为:将n个苹果分为每3个一组,最后几个苹果不足3个也算一组,拿走每组的第1个苹果,共拿走。,n为0时跳出,使用变量day记录循环的次数,循环的次数就是拿苹果的天数。每次循环n减少大约n/3个数字,时间复杂度为。设dn表示拿走第n个苹果的天数,初值为0。不断循环,每次循环使n减少。最后输出day和dn。
2024-10-04 15:59:33 987
原创 实现求正整数a和正整数b的商向上取整
但是该写法中a/b进行了实数除法计算,结果有可能不够精确。如果b可以整除a,那么b不会整除a-1,如果b不能整除a,但b可以整除a-1。根据:如果b不能整除a,那么结果为。如果b不能整除a,也不能整除a-1。问题:输入正整数a、b,求。中的ceil函数可以完成。,那么b可以整除a,
2024-10-04 15:25:34 704
原创 信息学奥赛一本通 1416:【17NOIP普及组】棋盘 | 洛谷 P3956 [NOIP2017 普及组] 棋盘
如果到(sx, sy)位置花的钱数coin比已知的一种到(sx, sy)位置的走法花钱mc[sx][sy]相等或更多,则没必要再搜索了,直接返回。在某次搜索时,当前位置为(sx, sy),下一个要访问的位置为(x, y),已经使用金币coin。如果当前位置(sx, sy)是无色的,但是变成了col色。那么下个位置(x, y)不可以是无色的。设二维数组mp记录每个格子的颜色,如果无色记为-1,1是黄色,0是红色。如果下个位置(x,y)是有色的,那么。如果当前位置(sx,sy)是有色的。
2024-10-04 12:10:29 416
原创 信息学奥赛一本通 2099:【23CSPJ普及组】公路(road) | 洛谷 P9749 [CSP-J 2023] 公路
设第i站后第一个加油价格比第i站低的加油站为第j站(如果没有,则取第n站),在第i站加油量可以使汽车刚好走到第j站。,那么如果在第x站加的油刚好能走到第y站,而后在第y站足够的加油,走到第z站。第i站到第j站的距离为从第1站到第j站的距离减去第1站到第i站的距离,再减去到第i站时剩下的油可以走的路程。将每次加油的量乘以第i站加油的单价,即为在第i站加油花的钱。,为了使加油总价最低,就没必要在第y站加油,只需要在第x站加足够的油一直走到第z站即可。升油才能从第i站走到第j站,就是在第i站需要加的油量。
2024-10-03 19:25:01 1099
原创 CSP-J 2024 入门级 第一轮试题(初赛)答案及解析
答:Cint是32位有符号整型,当机器数为0111 1111 1111 1111 1111 1111 1111 1111时,表示的数值最大,为231−1当机器数为1000 0000 0000 0000 0000 0000 0000 0000时,表示的数值最小,为−231因此int可以表示的数值范围为−231∼231−1,算出来的结果是−2147483648∼2147483647,选C。
2024-09-26 17:48:44 2290 2
原创 CSP-J 2024 入门级 第一轮(初赛) 完善程序(2)
最后将i-1层汉诺塔从tmp柱临时经过src柱移动到tgt柱,第(4)空填tmp, src, tgt,选B。对于一般情况,应该先将i-1层汉诺塔从src柱临时经过tgt柱移动到tmp柱,第(3)空填src, tgt,tmp,选B。结合字面意义,可以得知调用dfs函数的意义是:将i层汉诺塔从src柱临时经过tmp柱移动到tgt柱,。在dfs函数中,move的实参应该传dfs函数中的src和tgt,第(2)空填src, tgt,选B。move函数的参数src、tgt表示要从src柱移动到tgt柱。
2024-09-26 17:45:54 719
原创 CSP-J 2024 入门级 第一轮(初赛) 完善程序(1)
(1) (判断平方数) 问题:给定一个正整数 n,判断这个数 是不是完全平方数,即存在一个正整数 x 使得 x 的平方等于 n。我们可以枚举所有可能的i,i最小时应该为1(因为当n为1时,x应该为1,此时判断出n是完全平方数),因此第(1)空填1,选A。根据主函数中isSquare的用法可知,isSquare函数的作用是判断num是否是完全平方数。的数字的平方都不为num,那么num不是完全平方数,返回false,第(5)空选D。如果一个正整数n是完全平方数,那么一定存在正整数i满足。当n是完全平方数时,
2024-09-26 17:18:13 636
原创 CSP-J 2024 入门级 第一轮(初赛) 阅读程序(3)
但递归实际上不会无限进行下去,每次递归调用都会在栈区占一定的空间,当栈区没有空间时,会发生栈溢出,产生运行时错误。可以通过c[a-1][b-1]推出c[a][b]。那么就可以通过c[0][0]推出c[1][1]再推出c[2][2]再推出c[3][3]。“无限递归”如果指的是一种表象,看起来在不停地递归调用,程序无法停止,那么该叙述是正确的。设c[a][b]的值为customFunction(a, b)的返回值。实参y是形参b的值,该函数的运行时间随着b的增大而增大,叙述正确。
2024-09-26 16:45:11 818 3
原创 CSP-J 2024 入门级 第一轮(初赛) 阅读程序(2)
类型的对象v,其中包含10个元素,每个元素都是3。也就是说v.size()为10,v[0]~v[9]都是3。将dp[i-1]改为dp[i-3]后,当i为2时,执行到这一句。的下标为-1,数组下标越界,会产生运行时错误,而不是编译错误。输出min(dp[3], dp[2])=15,叙述正确。输出min(dp[3], dp[2]) = 10,选A。输出min(dp[10], dp[9])=6,选A。输出min(dp[7], dp[6])=30,选B。最后结果为:dp[n]和dp[n-1]的较小值。
2024-09-26 12:57:57 1202
原创 CSP-J 2024 入门级 第一轮(初赛) 阅读程序(1)
isPrime函数一定会返回false,那么isPrime函数就失去了判断n是否为质数的功能,因此将不能正确计算10以内的质数个数和加和,选A。输入20时,countPrimes函数返回的仍然是1~20中的质数个数,有。的所有整数,如果存在n的约数,那么n不是质数。countPrimes函数统计1~n中的质数个数。如果枚举从2到n的所有数字,那么当i为n时,一定有。sumPrimes函数统计1~n中的质数加和。isPrime函数判断传入的n是否是质数。,所以i从2循环到n/2和i从2循环到。
2024-09-26 12:15:45 1281
原创 CSP-S 2024 提高级 第一轮试题(初赛)答案及解析
1.在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?( )A. pwdB. cdC. lsD. echo答:Apwd (英文全拼:print work directory) 命令用于显示工作目录。cd (英文全拼:change directory)命令用于改变当前工作目录的命令,切换到指定的路径。ls (英文全拼: list directory contents)命令用于显示指定工作目录下之内容。
2024-09-26 01:27:52 1712
原创 CSP-S 2024 提高级 第一轮(初赛) 完善程序(1)
以及已知b数组的下标范围为[0, n),那么可知upper_bound的意义是:在左闭右开区间[a, an)指向的序列范围内找ai的上界,也就是大于ai的最小值的最小下标,这和STL中upper_bound的参数概念相同。而后遍历a数组,在a数组中选出元素a[i],而后看一下在b中有多少个元素与a[i]相加的结果都是小于等于sum的。在加和小于等于mid的数对的个数为k个的前提下,当mid不断减小直到最小时,mid就是第k小的数对的加和。第(2)空填需要满足的条件,二分求的是大于ai的最小值。
2024-09-25 23:27:41 1143
原创 CSP-S 2024 提高级 第一轮(初赛) 阅读程序(3)
的认定是不同的,两个基数也不同,不同串经过两种哈希过程得到相同哈希值都相等的概率很小,我们可以认为不会出现哈希冲突。solve函数中,i从n到1循环,将h[i]的哈希值设为H(p[i]),可以理解为生成一个长为1的串,如果p[i]为true,串就是"1";(见【题目考点】4)观察solve函数,i从n循环到1,循环内无论是H类对象的构造函数,还是H类对象的+运算,都是O(1)复杂度。因此该循环的复杂度是。lb为序列的下界,ub为序列的上界,下界与上界的类型为指针或迭代器,表示左闭右开区间[lb, ub)。
2024-09-25 22:18:20 1117
原创 CSP-S 2024 提高级 第一轮(初赛) 阅读程序(1)
前面的下标i选择大于等于pivot的元素,后面的下标j选择小于等于pivot的元素,二者交换。选择c[0]为标杆元素,从前向后找第一个大于等于c[0]的元素是c[0],从后向前找第一个小于等于c[0]的元素为c[4],二者交换,由于二者的数值都为5,所以c数组从数值角度来看没有变化。当B不是A的子集时,a ^ b表示的是在A中但不在B中的元素,以及在B中但不在A中元素构成的集合,即。表示在X中但不在Y中的元素,以及在Y中但不在X中元素构成的集合,也就是。,也就是在集合Y中但不在集合X中的元素构成的集合。
2024-09-24 22:18:45 1426
原创 CSP-S 2023 提高级 第一轮(初赛) 完善程序(2)
观察选项,A和C中涉及到了a[i]或a[i-1],pre的下标i和a的下标i之间存在pre[i] == a[mid+i]这样的关系,而pre[i]和a[i]没有直接关系,表达式中不应该出现a。例如,当原序列为 [1,2,1,2]时,要计算子序列 [1]、[2]、[1]、[2]、[1,2]、[2,1]、[1,2]、[1,2,1]、[2,1,2]、[1,2,1,2]的最大值之和,答案为 18。,pre[i]更新后的意义为pre[0]~pre[i]的最大值,也就是a数组区间[mid, mid+i]的最大值。
2024-09-18 09:50:41 821
原创 CSP-S 2023 提高级 第一轮(初赛) 完善程序(1)
根据拓扑排序的算法,如果v的入度减少1后入队,而现在是在v的入度减少前判断,如果满足该条件就将v添加进Q,那么此时应该填的条件为v的入度为1,则把Q加入顺序表Q。而后遍历u的邻接点v,对于每个顶点v,都有f[v]个从v出发的路径,根据拓扑排序的顺序,此时f[v]的值已经确定了。先对cand进行从小到大的排序,根据主函数中的代码,cand要么是Q,要么是E[u],vector中保存的都是顶点编号,因此此处是根据顶点编号从小到大排序。,也就是代码中的LIM,因此f[u]的最大值如果超过LIM,就是设为LIM。
2024-09-16 21:06:18 1047
原创 CSP-J 2019 入门级 第一轮(初赛) 完善程序(1)
结合划分子矩阵的方案,可以知道,(x, y+step)是右上方子矩阵的左上角位置,(x+step, y)是左下方子矩阵的左上角的位置,因此第(2)空应该填左上方子矩阵左上角位置(x, y),选D。当前函数传入t,指的是当前矩阵左上角值为t,而后前三次递归调用传入的都是t,表示左上、右上、左下的子矩阵的左上角的值和整个矩阵左上角的值相同,第四题递归调用时传入的是!的矩阵,其中左上、右上、左下的子矩阵的左上角的值和整个矩阵左上角的值相同,只有右下方子矩阵左上角的值与整个矩阵左上角的值不同。
2024-09-16 10:31:38 1107
Java控制台猜数字游戏
2011-06-28
c++重载输出流运算符<<时,为什么不能输出表达式的值
2022-01-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人