自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(982)
  • 收藏
  • 关注

原创 上海计算机学会2025年6月月赛C++乙组T3 斯瓦普

摘要:Carol 需要通过对两个序列 $a$ 和 $b$ 进行交换操作(可交换任意次),使得序列 $a$ 的极差(最大值与最小值的差)最小。通过枚举所有可能的 $a$ 序列最大值,并检查是否可以通过交换操作实现该最大值,最终找到最小的极差。算法时间复杂度为 $O(n^2)$,对于 $n \leq 2 \times 10^5$ 的数据规模,需要进行优化才能通过全部测试用例。

2025-08-04 22:46:53 366

原创 上海计算机学会2025年6月月赛C++乙组T2 二进制

本题要求统计1到n中二进制表示恰好包含k个1的整数个数。采用组合数学方法,先将n分解为二进制位,然后从高位到低位处理。对于每个1的位,计算将其置0后剩余位能组合出k个1的数量。时间复杂度主要取决于二进制位数处理,适用于大范围数据。最终结果需加上n本身是否满足条件的情况。

2025-08-04 22:37:37 302

原创 上海计算机学会2025年6月月赛C++乙组T1 美克斯

题目要求计算给定排列在区间[l,r]内的最小未出现自然数。通过预处理前缀最小值和后缀最小值,可以高效回答查询。当查询区间包含所有数时,答案为n;否则答案为区间外的最小值。对于n,q≤1e5的数据规模,该方法的时间复杂度为O(n+q),能够高效处理大规模输入。样例输入输出验证了算法的正确性。

2025-08-04 22:22:05 342

原创 上海计算机学会2025年6月月赛C++丙组T5 砝码整理

题目要求将砝码按质量从小到大排序,每次可以选定区间进行排序,花费为该区间最大值与最小值的差。要求找出最小总花费。通过分析,最优策略是将数组分成若干段,每段排序后的最大值与原始排序后的对应位置相等。具体实现时,先对数组排序,然后遍历原数组,维护当前段的最大值和最小值,当遇到排序后的最大值时就分段计算花费。时间复杂度为O(n log n),适用于n≤2×10^5的情况。

2025-08-04 21:37:08 964

原创 上海计算机学会2025年6月月赛C++丙组T4 前缀逻辑值

该题目要求计算前缀逻辑表达式的值。表达式由0(false)、1(true)和逻辑运算符(&、|、^)组成,采用前缀表示法。解题思路是递归处理表达式:遇到运算符则递归计算两个操作数,遇到0/1直接返回对应布尔值。示例代码使用全局索引x跟踪当前处理位置,通过递归调用实现运算。时间复杂度为O(n),适用于大规模输入(最长2×10^5字符)。

2025-08-04 21:22:26 246

原创 上海计算机学会2025年6月月赛C++丙组T3 前缀不等

摘要 题目要求将一个互不相同的整数序列重新排列,使得所有前缀和都不等于给定的x值,且字典序最小。解法是先将序列升序排列以保证最小字典序,然后检查前缀和是否等于x。如果出现等于x的情况,就交换当前元素与下一个元素来破坏该前缀和。若整个序列的和恰好为x,则无解。时间复杂度为O(n log n),适用于n≤1000的数据规模。示例输入输出验证了该方法的正确性。

2025-08-04 21:18:38 237

原创 上海计算机学会2025年6月月赛C++丙组T2 跳房子

摘要:题目描述小象玩简化版跳房子游戏,有n个格子,每个格子标注数字a_i。小象从第1格开始,每次跳到i+a_i位置,若正好到达第n格则获胜,否则失败。给出n和数组a,判断小象能否获胜。通过模拟跳跃过程,若最终位置等于n输出"Win",否则输出"Lose"。时间复杂度为O(n),适合处理n≤10^5的数据规模。

2025-08-04 21:07:31 387

原创 上海计算机学会2025年6月月赛C++丙组T1 小象喝水

摘要:题目给出五个杯子(100ml、250ml、500ml、1000ml、2000ml),要求根据输入的水量n(n≤2000),选择能装下n的最小杯子。通过简单的条件判断即可解决:若n≤100选100ml,n≤250选250ml,n≤500选500ml,n≤1000选1000ml,否则选2000ml。这是一个典型的分支结构应用问题。

2025-08-04 20:59:45 295

原创 上海计算机学会2025年7月月赛C++乙组T3 生成树

本文研究了一个生成树问题:给定n个节点的带权完全无向图,边权为节点权值乘积,求最小生成树。通过分析不同情况(全正、全负、混合),提出贪心解法:全正时以最小节点为中心连接,全负时以最大节点为中心连接,混合时正数与最小负数、负数与最大正数连接。算法时间复杂度为O(nlogn),主要来自排序步骤。代码实现简洁高效,适用于大规模数据(n≤5×10^5)。样例验证了算法的正确性,如输入3个正数时输出5,输入混合正负数时输出-3。

2025-08-03 22:17:33 344

原创 上海计算机学会2025年7月月赛C++乙组T2 不要回文

摘要:题目要求判断给定的字符串能否重排为不含长度大于1的回文串的形式。关键在于统计字母频率,并检查是否满足两个条件:1)最多字母的数量不超过其他字母数量加1的2倍;2)扣除最多和第二多的字母后剩余字母足够间隔最多字母。满足条件则输出"Yes",否则输出"No"。

2025-08-03 22:07:38 394

原创 上海计算机学会2025年7月月赛C++乙组T1 异或区间

本文解决了一个关于序列区间异或与和相等的问题。给定长度为n的序列,要求统计满足区间和等于区间异或的区间数量。关键思路是发现这些数的二进制位1不能重复,否则和会大于异或。算法通过维护各位1最后出现的位置,计算合法区间范围。时间复杂度为O(n),适用于大规模数据(n≤300,000)。样例输入4个数的输出为8,验证了算法的正确性。

2025-08-03 21:57:19 245

原创 上海计算机学会2025年7月月赛C++丙组T5 面包

这是一道关于面包货架整理的动态规划问题。给定n个货架,每个货架上有不同数量的蛋糕、甜甜圈和羊角面包,要求通过最少移动次数使每个货架只保留一种面包或为空。采用动态规划方法,状态dp[i][j]表示处理前i个货架后,已存在面包类型组合j(用3位二进制表示)时的最小移动次数。通过状态转移,每次选择将当前货架转化为某一种面包类型,并累加需要移动的其他面包数量。最终答案即为处理完所有货架后三种面包类型都存在时的最小移动次数(dp[n][7])。算法时间复杂度为O(n)。

2025-08-03 21:41:09 662

原创 上海计算机学会2025年7月月赛C++丙组T3 棋盘距离求和

摘要:题目要求计算n个点两两之间的切比雪夫距离之和。通过将坐标转换为u=x+y和v=x-y,将问题转化为曼哈顿距离求解。算法对转换后的坐标进行排序并利用前缀和优化,最终将u和v的距离和相加后除以2得到结果。该方法有效降低了计算复杂度,适用于大规模数据(n≤200,000)。

2025-08-03 21:27:03 287

原创 上海计算机学会2025年7月月赛C++丙组T4 染色

摘要 题目要求统计将数组中两个不同元素染红后,红蓝两组元素和奇偶性相同的染色方案数。关键在于奇偶性的组合计算:当奇数数量为奇数或数组长度为1时无解;否则方案数为C(奇,2)+C(偶,2)+奇×偶的组合数。时间复杂度为O(n)。

2025-08-03 21:24:54 343

原创 上海计算机学会2025年7月月赛C++丙组T2 游戏

题目描述了一群人进行游戏,每位玩家的得分都是不同的非负整数。给出N条信息,每条信息表示得分第A_i高的玩家分数为B_i。要求计算出游戏中最多可能有多少名玩家。 解题关键在于观察到最多玩家数等于所有A_i+B_i的最小值。例如样例输入1中4+7=11,2+9=11,6+2=8,取最小值8得到正确答案。因此解决方案是遍历所有给定的(A_i,B_i)对,计算它们的和并取最小值作为结果。 算法时间复杂度为O(N)每组数据,适用于大规模输入。

2025-08-03 19:26:07 328

原创 上海计算机学会2025年7月月赛C++丙组T1 十六进制

题目要求将0-255范围内的十进制整数转换为两位十六进制数。提供两种解法:第一种直接使用printf函数按十六进制格式输出;第二种通过数学运算分别计算高低位,再转换为相应字符。输出格式要求两位数,不足补零。两种方法均能正确实现转换,第一种更简洁,第二种更直观地展示了转换过程。

2025-08-03 19:17:36 304

原创 CCF-GESP计算机学会等级考试2025年6月六级C++T2 最大因数

题目描述了一棵具有10^9个节点的特殊树结构,其中每个节点k的父节点是k的最大真因数。给定q组询问,每组给出两个节点编号x和y,要求计算它们在树上的距离(边数)。 解题思路是:对于两个节点,不断比较大小,较大的节点向上移动到其父节点(最大真因数),直到两者相遇。每次移动计数一次,最终累计次数即为两节点距离。该算法通过逐步缩小节点间差距来找到共同祖先,从而确定路径长度。 样例输入输出展示了不同节点对的距离计算,包括简单情况(1-3为1)和较复杂情况(120-650为9)。代码实现使用循环比较和因数分解,高效解

2025-07-05 22:02:47 1267

原创 CCF-GESP计算机学会等级考试2025年6月六级C++T1 学习小组

题目摘要:班主任要将班级 $n$ 名同学划分为若干学习小组,每组 $k$ 人的积极度为 $a_k$。给定数组 $a_1$ 到 $a_n$,求所有划分方案中积极度之和的最大值。输入包括人数 $n$ 和积极度数组,输出最大积极度和。样例1输入4人,数组[1,5,6,3],输出10;样例2输入8人,数组[0,2,5,6,4,3,3,4],输出12。小数据可用深搜(40分),正解为完全背包动态规划,时间复杂度为$O(n^2)$。

2025-07-05 21:44:56 851

原创 CCF-GESP计算机学会等级考试2025年6月五级C++T2 最大公因数

题目要求计算n个正整数在q次增量i后的最大公约数((\gcd))。暴力解法时间复杂度高,适用于60%数据。优化解法利用(\gcd)性质:相邻数差值的(\gcd)与首项的(\gcd)即为所求。具体步骤为:1)排序数组;2)计算相邻差值(\gcd);3)对每个i,计算首项+i与差值(\gcd)的(\gcd)。这样将时间复杂度从O(NQ)优化到O(NlogN + Q)。输入规模可达1e5时,优化解法显著提升效率。

2025-07-05 21:14:00 779

原创 CCF-GESP计算机学会等级考试2025年6月五级C++T1 奖品兑换

题目描述同学们可以用两种券组合(a,b或b,a)兑换奖品。给定n张课堂券和m张作业券,求最多能兑换多少份奖品。 解析: 暴力解法(60分):枚举用券方式,时间复杂度O(n/a),适用于小数据。 正解:使用二分法优化,时间复杂度O(log(min(n,m))),通过判断是否能用x个奖券来调整搜索范围。 关键点: 需要处理两种兑换方式(a,b)和(b,a) 对于大数据必须使用二分法才能通过时间限制 交换变量确保a≥b和n≥m可以简化计算 样例说明: 例1:8张两种券,兑换需要(2,1),最多可换5份 例2:大数

2025-07-05 21:00:14 967

原创 CCF-GESP计算机学会等级考试2025年6月四级C++T2 排序

题目要求将n个同学按身高从高到低排序(身高相同则按体重从重到轻排序),计算最少需要的相邻交换次数。输入包含n和每个同学的身高体重,输出最少交换次数。通过求逆序对数量来解决问题,具体实现为双重循环比较每对同学是否构成逆序对,统计总数即为答案。时间复杂度为O(n²),适用于n≤3000的数据规模。

2025-07-05 20:34:57 658

原创 CCF-GESP计算机学会等级考试2025年6月四级C++T1 画布裁剪

这道题目要求对给定的二维字符矩阵进行裁剪,提取指定行列范围内的子矩阵。输入包含矩阵的行列数h和w,裁剪范围x1到x2行和y1到y2列,以及h行w列的字符矩阵。输出只需要输出指定范围内的子矩阵内容即可。题目保证所有输入参数都在合法范围内,实现简单,只需按要求提取指定行列的字符块并输出。时间复杂度为O(h×w),适用于给定的数据规模。

2025-07-05 20:24:50 988

原创 CCF-GESP计算机学会等级考试2025年6月三级C++T2 分糖果

题目要求为n位小朋友分配糖果,每位小朋友至少需要a_i颗糖果,且分配的糖果数必须严格递增。给定n和每位小朋友的最小需求,计算满足条件所需的最少糖果总数。 解法:从左到右遍历,确保当前分配的糖果数满足a_i且比前一位多1(若前一位+1大于a_i)。最终将所有分配的糖果数相加得到结果。 示例1:输入4位小朋友的最小需求[1,4,3,3],经过调整后分配为[1,4,5,6],总和16。注意需要使用long long类型存储结果以避免溢出。 时间复杂度:O(n),空间复杂度:O(n)。

2025-07-05 20:17:10 879

原创 CCF-GESP计算机学会等级考试2025年6月三级C++T1 奇偶校验

摘要 题目要求计算给定一组非负整数在二进制表示中1的总个数,并根据总数的奇偶性输出校验码(奇数个1输出1,偶数个输出0)。提供了两种解法:方法一通过不断取模和除法分解二进制位,方法二则使用位运算更高效地统计1的个数。两种方法都能正确计算出总1数和校验码,适用于小规模数据(n≤100,ci≤255)。输入输出示例展示了典型情况下的计算结果。

2025-07-05 20:08:53 1199

原创 CCF-GESP计算机学会等级考试2025年6月二级C++T2 幂和数

题目要求统计区间[l,r]内的幂和数数量。幂和数定义为可以表示为两个2的次幂之和的数,即n=2^x+2^y(x,y为非负整数)。通过双重循环枚举所有可能的2^x和2^y组合,判断其和是否在区间内,并计数。例如样例1中2-8区间有6个幂和数,样例2中10-100区间有20个。算法时间复杂度为O(log²r),适用于题目给定的1≤l≤r≤10⁴范围。

2025-07-05 19:58:52 976

原创 CCF-GESP计算机学会等级考试2025年6月二级C++T1 数三角形

本题要求计算直角边不超过n的正整数时,面积为整数的不同直角三角形数量。关键条件是面积ab/2为整数,即ab为偶数,这等价于a和b至少有一个是偶数。解法一是直接枚举所有a≤b≤n的组合,统计满足条件的对数,时间复杂度O(n²)。解法二则通过数学分析,对每个a统计对应的有效b值,利用奇偶性优化计算,时间复杂度O(n)。当n较大时,解法二更高效。两种方法都能正确求解,但解法二性能更优。

2025-07-05 19:51:48 1357

原创 CCF-GESP计算机学会等级考试2025年6月一级C++T2值日

题目要求计算小杨和小红再次同一天值日的最小天数,即求两个周期m和n的最小公倍数(LCM)。摘要如下: 题目给出两个正整数m和n表示值日周期,需要求两者的最小公倍数。提供了两种解法:1)循环枚举法,从较大周期开始逐个检查是否能同时整除m和n;2)数学方法,先通过辗转相除法求最大公约数(GCD),再用公式LCM=m*n/GCD计算最小公倍数。输入样例4和6时,输出12。 关键点:理解最小公倍数的概念,掌握两种计算方法,特别是高效的数学解法。

2025-07-05 19:42:06 392

原创 CCF-GESP计算机学会等级考试2025年6月一级C++T1假期阅读

题目要求计算在给定假期天数内,小A最多能阅读的书页数。给定书的页数n、每天最多阅读页数k和假期天数t,最多能阅读的页数为每天阅读页数k乘以天数t,但不能超过总页数n。因此结果为min(k×t, n)。例如输入8页、每天3页、2天假期,最多阅读6页;若总页数19、每天3页、30天假期,最多阅读19页。

2025-07-05 19:35:27 341

原创 陕西计算机学会SYAP2025年5月月赛-新手组T1 存钱

小可决定从第一天开始存钱,每天存的钱数递增,第 (i) 天存 (i) 块钱。然而,每个星期日(幸运数字为7)小可不存钱。假设第一天是星期一,问小可需要多少天才能存够 (N) 块钱。通过模拟每天的存钱过程,累加存钱总额,直到达到或超过 (N) 块钱,输出所需天数。代码通过循环逐天计算存钱数,并在星期日跳过存钱,最终输出满足条件的天数。

2025-05-26 09:12:37 722

原创 陕西计算机学会SYAP2025年5月月赛-新手组T2 gogogo出发咯

小可参加赛车比赛,起点位于第0米,起点有一个氮气加速道具,可推进K米。赛道上有N个氮气加速道具,第i个道具位于A_i米处,可推进B_i米。A_i按升序排列。小可从起点出发,依次经过每个道具,若当前位置能到达道具位置,则获取道具并增加推进距离。最终输出小可停止的位置。通过模拟过程,代码遍历所有道具,更新可到达的位置,最终输出结果。

2025-05-26 09:12:24 680

原创 陕西计算机学会SYAP2025年5月月赛-新手组T3 最小鸢尾花数

给定一个正整数 $N$,要求找到最小的不小于 $N$ 的鸢尾花数。鸢尾花数是指一个正整数的十进制表示中,任意相邻两位的数字之差是同一个常数。例如,12345、8642、66666 都是鸢尾花数,而 88910 与 121 不是。通过深度优先搜索(DFS)算法,从 $N$ 的最高位开始,枚举所有可能的相邻数字差值,逐步构建满足条件的数,并确保其不小于 $N$。最终输出最小的符合条件的鸢尾花数。代码通过剪枝优化,避免不必要的搜索,确保在合理时间内找到答案。

2025-05-26 09:12:08 873

原创 陕西计算机学会SYAP2025年5月月赛-新手组T4 24点

该题目要求通过四则运算将四个不超过99的正整数组合成24点,并输出合法的表达式。解题思路是通过深度优先搜索(DFS)枚举所有可能的数字排列和运算符组合,并通过表达式求值验证是否等于24。代码中,首先通过DFS生成所有数字的排列,然后在每种排列下,通过DFS生成所有可能的运算符组合,最后利用栈结构进行表达式求值。若结果等于24,则输出该表达式。该方法确保了所有可能的组合都被尝试,从而找到符合条件的解。

2025-05-26 09:11:53 744

原创 陕西计算机学会SYAP2025年5月月赛-进阶组T1 哥德巴赫猜想

哥德巴赫猜想指出,任意大于2的偶数均可拆分成两个素数之和。虽然该猜想尚未被证明,但可以通过计算机验证特定数是否满足这一条件。本文提供了一个算法竞赛题目,要求判断给定正整数是否能拆分成两个素数之和。题目包含多组测试数据,每组数据给定一个正整数n,输出“Yes”或“No”表示是否满足条件。算法使用埃氏筛法生成素数列表,并通过双指针法查找是否存在两个素数之和等于n。代码展示了具体实现,包括素数生成和双指针查找过程。该算法适用于大规模数据,时间复杂度较低,能够有效解决问题。

2025-05-26 09:11:37 751

原创 陕西计算机学会SYAP2025年5月月赛-进阶组T3 变换装置

小意有一个长度为 $n$ 的正整数数组 $a$ 和一个变换装置。每个元素进行一次变换会导致其数位上的数字按特定规则变化:存在一个长度为 $9$ 的数组 $b$,表示数字 $1$ 到 $9$ 的变换规则,数字 $0$ 不变。小意每次启动装置会对数组中的所有元素进行变换,求启动 $k$ 次后数组 $a$ 从小到大排序后的结果。 输入格式:第一行输入 $n$ 和 $k$,第二行输入数组 $a$,第三行输入数组 $b$。 输出格式:输出变换并排序后的数组。 解析:由于每个数字经过多次变换后会回到自身,因此可以计算每

2025-05-26 09:11:18 652

原创 陕西计算机学会SYAP2025年5月月赛-进阶组T2 双色方格

小A在玩一个双色方格游戏,游戏规则要求他通过抽取不同颜色的左半和右半方格来获得积分。每对匹配的方格只能获得一次积分,且游戏在获得k积分时结束。为了确保胜利,小A需要计算最少需要抽取多少对不同颜色的方格。通过鸽巢原理,首先取每种颜色左半和右半方格中的最大值,然后从剩余部分中取前k-1个最大的小值,最后再额外抽取一个方格,确保获得足够的积分。代码实现中,通过排序和累加计算,最终输出所需的最少方格对数量。

2025-05-26 09:10:59 1113

原创 陕西计算机学会SYAP2025年5月月赛-进阶组T4 构造菊花图

题目要求将一棵树通过最少的操作次数构造为菊花图。菊花图的定义是存在一个支配点,所有边都与该点相连。小B提出的构造方案是:选取三个相邻的点a、b、c,断开a的所有边,将a与c相连,再将a断开的点与c相连。通过不断重复此操作,最终可以将树转化为菊花图。 解析部分指出,对于以某个节点为根的树,只需将深度为偶数的节点从叶子到根依次操作,即可将其转化为菊花图。具体实现通过两次深度优先搜索(DFS):第一次计算每个节点的奇数距离和偶数距离的节点数量;第二次通过换根操作,重新计算奇偶节点数量,并找到最小的操作次数。 最终

2025-05-26 09:10:41 975

原创 上海计算机学会2025年5月月赛C++乙组T2 平衡 01 串

本文介绍了一个关于01串的问题,要求找出所有子串的最小权重。权重的定义是子串中0的个数与子串外1的个数的较大值。通过双指针法,可以有效地解决这个问题。具体步骤是:首先统计所有1的个数,然后使用左右指针遍历子串,动态计算子串中0的个数和子串外1的个数,并更新最小权重。最终,程序输出每组数据的最小权重。该方法的时间复杂度较低,适用于大规模数据处理。

2025-05-24 20:30:11 1073 1

原创 上海计算机学会2025年5月月赛C++乙组T1 逆序对数

题目要求计算一个排列中非空子序列的逆序对数与原排列逆序对数相等的数量,并对结果取模。通过分析,发现只有当子序列中不包含某些特定元素时,逆序对数才会保持不变。这些特定元素是比其前面所有元素大且比后面所有元素小的数。通过预处理数组,可以快速找到这些元素的数量。最终,符合条件的子序列数量为2的cnt次方减去1(如果cnt等于n,则减去空序列的情况)。代码通过快速幂计算2的cnt次方,并输出结果。

2025-05-24 20:29:47 1032

原创 上海计算机学会2025年5月月赛C++丙组T1 打包购买

Alice需要购买10个面包,面包店提供两种规格:2个面包x元和4个面包y元。目标是找到购买10个面包的最小总花费。通过比较两种规格的单价,选择单价较低的规格进行购买。如果4个包装的单价低于2个包装,则购买两个4个包装和一个2个包装;否则,购买五个2个包装。代码通过判断y与2x的关系,输出相应的最小花费。

2025-05-24 20:29:09 1035

原创 上海计算机学会2025年5月月赛C++丙组T2 手机充电

Bob的手机电量每分钟在充电时增加2%,不充电时减少3%。他需要将电量调整到恰好50%,且电量必须保持在0%到100%之间。对于每组输入的电量n,计算达到50%所需的最少时间。如果n大于50,通过放电和充电的组合来调整;如果n小于50,通过充电和放电的组合来调整。具体实现见代码,通过计算差值和调整步骤得出结果。

2025-05-24 20:28:44 814

GESP C++ 等级考试真题及样题,截止24年3月(全).rar

GESP C++ 等级考试真题及样题,截止24年3月(全)

2024-03-18

中国电子学会C语言1级-10级-20190927.pdf

中国电子学会C语言1级-10级-20190927.pdf

2023-12-01

CCF-GESP 等级考试 2023年3月认证C++二级真题 附答案

CCF-GESP 2023年3月认证C++二级真题

2023-03-22

CCF-GESP 等级考试 2023年3月认证C++一级真题 附答案

CCF-GESP 2023年3月认证C++一级真题

2023-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除