自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 上海计算机学会2026年4月月赛C++丙组T1 差的绝对值

这道题要求计算两个整数差的绝对值。解题思路是读取输入的两个整数A和B,计算它们的差值后取绝对值输出。代码实现简单直接:使用C++的abs()函数即可完成核心计算,仅需3行关键代码(输入、计算、输出)。该方法高效可靠,能正确处理所有给定数据范围的情况,包括正负数组合。示例输入3和1输出2,验证了算法的正确性。

2026-05-06 08:00:00 192

原创 上海计算机学会2026年4月月赛C++丙组T2 括号消除

题目要求模拟括号消除过程,最终输出剩余字符数。通过计数法高效解决:用变量z记录未匹配的左括号数,cnt记录无法匹配的右括号数。遍历字符串时,遇到左括号增加z,遇到右括号优先匹配左括号(z--),否则增加cnt。最终剩余字符数为z + cnt。该方法时间复杂度O(n),空间O(1),适用于大数据范围。

2026-05-06 08:00:00 239

原创 上海计算机学会2026年4月月赛C++丙组T3 螺旋矩阵

本文介绍了一个生成N×N螺旋矩阵的算法。采用方向数组模拟方法,按照右、下、左、上的顺序循环移动,遇到边界或已填充数字时转向。算法使用两个方向数组dx和dy表示四个移动方向,通过循环填充1到N²的数字,并判断下一步是否合法来决定前进或转向。时间复杂度为O(N²),空间复杂度为O(N²),适用于N≤300的情况。核心思想是"合法前进,不合法转向",最终输出完整的螺旋矩阵。

2026-05-06 08:00:00 239

原创 上海计算机学会2026年4月月赛C++丙组T4 套餐限价

这篇文章介绍了一个解决套餐限价问题的优化算法。题目要求计算所有食物和饮料搭配的总花费,其中超过限价L的套餐按L收费。核心思路是: 排序优化:对食物和饮料数组排序,为双指针做准备 前缀和预处理:计算饮料价格的前缀和数组 双指针遍历:对每个食物,找到临界点j,使得a[i]+b[j]<L 分段计算:前j个套餐按原价计算,剩余按限价L计算 该算法将时间复杂度从O(N*M)优化到O(NlogN + MlogM),通过排序、前缀和和双指针技术高效处理大数据量,同时使用long long防止数值溢出。

2026-05-06 08:00:00 175

原创 上海计算机学会2026年4月月赛C++丙组T5分形交叉

本文介绍了一个递归分治算法来生成N级分形交叉图案。分形交叉由五个N-1级子分形组成,分别位于左上、右上、左下、右下和正中间位置。算法采用递归方法,当N=0时绘制单个"X",否则分解为五个子问题,计算子分形边长并在指定位置绘制。最终通过二维数组存储图案并输出。该算法时间复杂度为O(3^2N),空间复杂度为O(3^2N),适用于N≤7的情况。代码实现简洁,通过递归调用和数组标记高效解决了分形图案生成问题。

2026-05-06 08:00:00 183

原创 上海计算机学会2026年4月月赛C++乙组T1 螺旋坐标

这篇题解介绍了如何通过数学分层的方法高效定位螺旋矩阵中数字K的位置。核心思路是: 将螺旋矩阵视为多层嵌套的正方形,最外层为第0层 通过循环计算K所在的层数,同时将K转换为该层内的相对位置 根据相对位置判断K位于当前层的哪条边(右、下、左、上) 直接计算对应的行和列坐标,避免构建整个矩阵 该方法使用long long防止溢出,时间复杂度为O(N),空间复杂度O(1),完美解决大数据量问题。代码包含详细注释,清晰地展示了分层计算和坐标定位的过程。

2026-05-06 08:00:00 169

原创 上海计算机学会2026年4月月赛C++乙组T2 数据对齐

摘要:本题要求为每个查询值在基准集中找到最小差距的数。通过排序基准集后使用二分查找,可以高效解决该问题。具体步骤:1) 对基准数组排序;2) 对每个查询值用lower_bound定位插入位置;3) 比较前后元素计算最小差值。时间复杂度为O(NlogN + MlogN),适用于大数据量。关键点包括排序预处理、二分查找和输入输出优化。

2026-05-06 08:00:00 114

原创 上海计算机学会2026年4月月赛C++乙组T3 轻重缓急(二)

这篇文章介绍了一个贪心算法问题,要求选择最多数量的任务完成,每个任务有最晚启动时间和耗时限制。解题关键在于: 将任务按完成截止时间(D_i + T_i)升序排序,优先处理更紧急的任务; 使用大根堆动态维护已选任务,实时跟踪总耗时; 采用贪心策略:当新任务无法满足启动时间时,替换掉耗时最长的任务以优化总耗时; 算法复杂度为O(n log n),能高效处理大规模数据(n≤300,000)。 该方法通过巧妙的任务排序和堆维护,确保在有限时间内完成最多任务,体现了贪心算法在调度问题中的高效应用。

2026-05-06 08:00:00 489

原创 上海计算机学会2026年4月月赛C++乙组T4 平衡二叉树

本文解决平衡二叉树形态计数问题。给定N个节点,求满足平衡条件的二叉树形态数量(模1,000,000,007)。采用动态规划方法,定义dp[i][h]表示i个节点、高度h的平衡树数量。预处理节点数的最小/最大高度以优化效率。状态转移时枚举左右子树节点分配,确保高度差≤1。最终累加所有合法高度的方案数得到结果。算法时间复杂度优化至O(N^2*H^2),适用于N≤5000的数据规模。

2026-05-06 08:00:00 422

原创 上海计算机学会2026年3月月赛C++丙组T5 清一色数

本文介绍了如何寻找满足特定条件的最大清一色数。题目要求找出小于10ⁿ、各位数字相同且是m的倍数的最大数。解题思路是:从数字9到1依次枚举,生成1到n位的清一色数,通过取模运算判断是否为m的倍数而不存储大数。记录最长位数和对应数字,最后输出结果。代码优化了空间和时间复杂度,适用于大数情况。通过样例验证,该方案能正确高效地解决问题。

2026-04-01 17:21:23 760

原创 上海计算机学会2026年3月月赛C++丙组T4 正数配对

本文提出了一种高效的算法来解决"正数配对"问题。通过将A、B数组升序排序后使用双指针技术,我们可以在O(n log n)时间内计算出所有满足A[i]+B[j]>0的配对数。具体实现时,固定A中的元素,在B数组中找到第一个不满足条件的边界点,统计其后所有有效配对。算法通过样例验证正确,并采用long long类型存储结果以避免溢出。该方法完美处理了最大规模数据,是本题的最优解。

2026-04-01 17:18:02 186

原创 上海计算机学会2026年3月月赛C++丙组T3 负二转十

本文介绍了一种将负二进制数转换为十进制的高效算法。负二进制以-2为基数,每位权重依次为1, -2, 4, -8...。作者提出了一种简洁的递推公式:从左到右遍历字符串,每次用当前结果乘以-2再加上当前位数字。这种方法避免了复杂的幂运算,时间复杂度仅为O(n)。文中通过两个样例详细演示了计算过程,验证了算法的正确性。该方案代码简洁高效,仅需10行左右的核心逻辑即可完成转换,能够完美处理30位以内的输入数据。

2026-04-01 16:22:39 135

原创 上海计算机学会2026年3月月赛C++丙组T2 机器人

摘要:本文介绍了一个机器人坐标移动问题的解法。机器人初始在原点(0,0),面向X轴正方向,通过处理包含F(前进)和T(顺时针旋转90度)的指令序列来确定最终位置。解法使用方向数组存储4个方向的坐标变化量,线性遍历指令字符串,时间复杂度O(n)。样例测试验证了正确性,代码简洁高效,能处理百万级指令。

2026-04-01 16:19:27 114

原创 上海计算机学会2026年3月月赛C++丙组T1 和差还原

我这段代码极致简洁、数学思路清晰,直接利用和差问题的经典公式求解。时间复杂度 O(1),能完美通过所有测试点,不需要任何修改就能直接 AC。

2026-04-01 16:16:16 208

原创 上海计算机学会2026年2月月赛C++丙组T5 置换游戏

本文提出了一种高效的置换游戏解法。题目要求对序列进行k次置换操作,k可达1e18次,无法暴力模拟。核心思路是将置换操作视为数学上的置换乘法,利用快速幂(倍增法)在O(logk)时间内完成计算。具体实现中,定义了置换乘法和置换快速幂函数,通过二进制分解k,将多次置换压缩为对数次计算。代码处理了1下标转0下标的细节,并正确实现了置换的复合运算。该方法能高效处理大规模数据,时间复杂度为O(n logk),完美解决了暴力模拟的超时问题,适用于所有测试用例。

2026-04-01 16:10:37 346

原创 上海计算机学会2026年2月月赛C++丙组T4 Rule the world!!

这篇题解提出了一种高效解决批量数值替换问题的方法。核心思路是使用计数数组记录每个数字出现的次数,并通过数学公式快速更新总和: 使用计数数组统计数字频率,初始计算总和 每次操作时,用公式 sum += (c-b)*count[b] 快速更新总和 更新数字计数,将b的计数转移到c 处理边界情况(b=c时跳过) 使用long long防止溢出 该方法将时间复杂度从O(nq)优化到O(n+q),适用于大规模数据。样例验证显示正确性,代码简洁高效,无需修改即可AC。

2026-04-01 16:06:42 282

原创 上海计算机学会2026年2月月赛C++丙组T3 Primary Pair

摘要:本文介绍了一种高效解决"高级数对"问题的算法。题目要求在给定数组中找出互质数对,使其下标和最大。利用数值范围小(≤1000)的特点,算法仅记录每个数字最后出现的下标,然后在1-1000范围内枚举所有数对,用__gcd判断互质性并计算最大下标和。该方法避免了O(n²)的暴力枚举,时间复杂度降至O(1000²),适用于大规模数据。代码简洁高效,通过了所有测试用例。

2026-04-01 16:03:18 327

原创 上海计算机学会2026年2月月赛C++丙组T2 奇怪的展开式

摘要:本文解决了一个关于m进制数展开式的问题,要求将给定的m进制数转换为十进制展开式,并省略系数为0的项。通过使用字符串存储大数,遍历每一位数字并跳过0值项,同时控制输出格式确保只在有效项间添加加号。代码处理了最多1000位的大数,并通过样例测试验证了正确性。

2026-04-01 15:58:32 256

原创 上海计算机学会2026年2月月赛C++丙组T1 乘积的秘密

本文提出了一种高效判断整数区间乘积符号的方法,避免了直接计算可能导致的溢出问题。通过分析区间是否包含0以及负数的个数奇偶性,算法能在常数时间内确定乘积符号:若区间包含0则输出Zero;若全为负数则根据负数个数的奇偶性输出Negative或Positive;若全为正数则输出Positive。该方法逻辑严谨,时间复杂度为O(1),完美适用于大范围数据输入。

2026-04-01 15:49:58 253

原创 CCF-GESP计算机学会等级考试2026年3月六级C++T1 选数

这道题目要求从两个数组中选择下标,满足特定条件的情况下最大化元素和。通过动态规划+前缀最大值优化,实现了O(n)时间复杂度的解法。核心思路是维护一个f数组记录每个位置可继承的最大和,并依次处理每个元素,更新后继位置的最优解。该方法高效处理了大规模数据,避免了二分查找,空间复杂度为O(n)。样例验证表明算法正确,边界条件和类型选择也得到了妥善处理。

2026-03-20 15:22:30 447

原创 CCF-GESP计算机学会等级考试2026年3月六级C++T2 完全二叉树

摘要: 题目要求统计给定有根二叉树中所有子树为完全二叉树的数量。完全二叉树的判定条件是:除最后一层外各层结点满,且最后一层靠左排列。通过后序遍历递归处理每个结点,动态判断其子树是否为满二叉树或完全二叉树。满二叉树(所有层结点满且左右子树深度相同)是特殊的完全二叉树。算法维护三个状态数组:w[i]标记完全二叉树,m[i]标记满二叉树,h[i]记录深度。最终统计所有满足条件的子树数。时间复杂度O(n),空间复杂度O(n)。样例验证表明算法正确性。

2026-03-20 15:22:10 638

原创 CCF-GESP计算机学会等级考试2026年3月五级C++T2 找数

题目要求统计两个数组中共同出现的数字个数。给定两个数组A和B,分别包含n和m个不同的正整数。有三种解法:1)合并排序后统计相邻相同元素;2)双指针法分别排序后同步遍历比较;3)另一种双指针实现。三种方法时间复杂度均为O(NlogN),适用于大规模数据。样例输入输出展示了如何计算共同元素的数量。

2026-03-19 10:13:46 867

原创 CCF-GESP计算机学会等级考试2026年3月五级C++T1 有限不循环小数

题目要求统计区间[L,R]中"终止数"的数量,即满足1/a是有限不循环小数的整数a。解题关键在于:a必须是2和5的幂次乘积。算法遍历区间内每个数,不断除以2和5,若最终结果为1则计数。时间复杂度为O(NlogN),适用于1≤L≤R≤10^6的范围。例如输入2 11,输出5(终止数为2,4,5,8,10)。

2026-03-19 09:35:09 131

原创 CCF-GESP计算机学会等级考试2026年3月四级C++T2 礼盒排序

摘要 本题要求对礼盒进行多条件排序:首先按总价格升序,若相同则按最贵商品价格升序,再相同则按最便宜商品价格升序,最后按编号升序。输入包含礼盒数量和每个礼盒的商品价格,输出排序后的礼盒编号。解决方案是计算每个礼盒的总价、最大值和最小值,然后通过自定义排序函数实现多级排序。样例中展示了4个礼盒按照上述规则排序的过程,最终输出结果为"3 4 2 1"。算法时间复杂度主要由排序决定,为O(n log n)。

2026-03-19 09:23:16 396

原创 CCF-GESP计算机学会等级考试2026年3月四级C++T1 山之谷

题目要求统计网格中满足"山谷"条件的单元格数量。山谷定义为海拔不高于其所有相邻8个方向单元格的格子。 解决思路: 遍历每个单元格 检查其8个相邻单元格 如果当前单元格海拔高于任意相邻单元格,则不计为山谷 统计最终符合条件的单元格数量 关键点: 处理边界情况时,需要判断相邻单元格是否在网格范围内 只需找到任意一个相邻单元格海拔更低即可排除当前单元格 时间复杂度为O(NM),空间复杂度为O(NM),适用于题目给定的100×100网格规模。

2026-03-19 09:08:19 319

原创 CCF-GESP计算机学会等级考试2026年3月三级C++T2 凯撒密码

摘要 凯撒密码是一种简单的字母替换加密方法,通过固定偏移量将字母表中的字母进行替换。题目要求根据已知的明文和密文对计算出偏移量,然后使用该偏移量解密另一个密文字符串。解题步骤包括:1) 计算已知明密文对的偏移量;2) 处理可能的负偏移;3) 对目标密文应用相同的偏移量进行解密。代码实现简洁高效,通过字符加减和模26运算完成解密过程。

2026-03-19 08:48:40 506

原创 CCF-GESP计算机学会等级考试2026年3月三级C++T1 二进制回文串

题目要求统计1到n范围内二进制回文数的数量。二进制回文数是指其二进制表示(不含前导零)从左向右和从右向左读完全相同的数。通过枚举每个数,将其转换为二进制后反向组合,判断是否与原数相等即可确定是否为回文数。样例中1-15范围内有6个这样的数。算法时间复杂度为O(nlogn),适用于n≤10^5的数据范围。

2026-03-19 08:41:53 161

原创 CCF-GESP计算机学会等级考试2026年3月二级C++T2 画画

题目要求绘制一个n×n的正方形,遵循特定规则:四个顶点用'+'表示,第一行和最后一行用'-'填充(除顶点外),第一列和最后一列用'|'填充(除顶点外),内部区域用'*'填充。输入一个3≤n≤100的正整数n,输出对应的正方形图案。 示例输入5时输出: +---+ |***| |***| |***| +---+ 解题思路分为两种: 双重循环遍历每个位置,根据行列位置判断输出字符类型 分三部分处理:首尾行(含顶点和横线)和中间行(含竖线和星号) 两种方法均可实现,第一种直接判断位置关系,第二种按行分类处理。

2026-03-19 08:32:21 323

原创 CCF-GESP计算机学会等级考试2026年3月二级C++T1 数数

题目要求统计区间[L,R]中所有数字恰好包含3个数字'2'的美丽数的个数。通过遍历L到R的每个数,拆解各位数字并统计'2'的出现次数,若恰好为3则计入结果。例如输入2221到2223时,2221和2223各含3个'2',而2222含4个'2'不计入,故输出2。算法时间复杂度为O((R-L+1)*位数),适用于给定数据范围。

2026-03-19 08:19:27 405

原创 CCF-GESP计算机学会等级考试2026年3月一级C++T2 数字替换

摘要 题目要求将给定整数中的所有数字4替换为8。例如输入8459045,输出应为8859085;若不含4则原样输出。提供了两种解法:1) 字符处理法,逐字符读取输入并替换;2) 数值分解法,拆解数字各位后重组。数据范围限制在0到10^8之间。两种方法都能正确处理输入并输出替换后的结果。

2026-03-19 08:10:52 326

原创 CCF-GESP计算机学会等级考试2026年3月一级C++T1 交朋友

题目要求从4个小朋友中找出与Alice身高最接近的人(若差值相同则选较矮的)。输入4个不同身高,输出Alice选择的朋友身高。题解提供了三种解法:标准版通过计算绝对值差比较;三元运算符版简化了差值计算;绝对值函数版直接使用abs函数。核心逻辑都是比较身高差,优先选差值小的,差值相同时选较矮者。

2026-03-19 08:03:06 621

原创 上海计算机学会2026年1月月赛C++丙组T5 打扫

摘要 本文解决了一个关于数组操作的最小步数问题。给定长度为n的数组和三个整数x,y,z,每次操作可以将任意元素加1,要求最终数组中至少各有一个元素是x、y、z的倍数。算法通过以下步骤计算最小操作次数: 预计算所有元素到x、y、z及其两两组合和三者组合的最小倍数所需步数 考虑三种情况: 三个不同元素分别满足x、y、z 两个不同元素分别满足两两组合和单值 单个元素满足三者组合 通过排序和贪心策略获取各情况的最小步数组合 最终结果为所有可能情况中的最小值 算法时间复杂度为O(n),适用于大规模数据。

2026-01-31 19:57:05 558

原创 上海计算机学会2026年1月月赛C++丙组T4 分形十字

分形十字题解:采用递归+数组填充方法,根据级别N生成边长为3^N的十字图案。核心逻辑为:递归填充中心子十字,将其内容复制到上下左右四个方向,四角填充'.'。时间复杂度与空间复杂度均为O(9^N),适用于N≤7的范围。代码通过DFS实现分形结构,逐行打印最终图案。

2026-01-31 19:29:50 1294

原创 上海计算机学会2026年1月月赛C++丙组T3 配对乘积

题目要求从两个整数数列中各选一个数,使它们的乘积最大。通过枚举所有可能的配对组合,比较乘积大小,最终输出最大值。该方法时间复杂度为O(N²),适用于给定的数据范围(N≤10000)。样例输入输出验证了算法的正确性。

2026-01-31 19:13:14 287

原创 上海计算机学会2026年1月月赛C++丙组T2 简单的数学题

题目要求通过交换两个n位数的对应位,使得它们的乘积最小。采用贪心策略,逐位比较并交换使一个数的各位尽可能大,另一个尽可能小,从而最小化乘积。处理大数时逐位取模避免溢出。最终计算两数模值的乘积并再次取模输出。算法时间复杂度为O(n),适用于大数据范围。

2026-01-31 19:00:21 630

原创 上海计算机学会2026年1月月赛C++丙组T1 误触

题目摘要: 给定两个字符串S和T,判断S是否可以通过最多一次相邻字符交换操作变为T。若长度不同直接输出No;若完全相同输出Yes;若恰有一对相邻字符交换后匹配T也输出Yes,否则输出No。字符串长度≤100,仅含小写字母。 核心逻辑: 长度校验:长度不等直接判否 特征统计: cnt记录相同位置字符数 f统计有效相邻交换对数(需排除相同字符) 结果判定: 全部相同(cnt==长度)→ Yes 恰有2字符不同且存在1次有效交换(cnt+2==长度 && f==1)→ Yes 其他情况→ No 关

2026-01-31 18:45:34 327

原创 CCF-GESP计算机学会等级考试2025年12月六级C++T2 道具商店

摘要: 题目P14920是一道变形01背包问题,玩家需在金币有限的情况下购买道具以最大化攻击力提升。由于金币上限高达$10^9$,常规01背包解法不可行。解题核心是维度转换:将状态定义为dp[j]表示获得j攻击力的最小金币消耗(攻击力总和上限仅250000)。通过逆序01背包处理,最后遍历所有攻击力值,找到满足dp[j]≤k的最大j即为答案。该解法巧妙利用数据范围特点(攻击力数值小),将问题转化为可处理的常规背包模型。

2026-01-05 21:39:44 1070

原创 CCF-GESP计算机学会等级考试2025年12月六级C++T1 路径覆盖

题目要求在一棵有根树中选择若干节点染黑,使得所有叶子到根的路径上至少有一个黑点,且总染色代价最小。通过树形动态规划解决:定义dp[i]为以i为根的子树的最小覆盖代价。从叶子到根逆序遍历节点,对每个节点i,取自己染黑的代价c[i]或子节点代价和的最小值作为dp[i],最后根节点的dp值即为答案。算法时间复杂度O(n),空间复杂度O(n),高效处理了n≤1e5的数据规模。

2026-01-05 14:17:05 806

原创 CCF-GESP计算机学会等级考试2025年12月五级C++T2 相等序列

题目要求通过最少金币操作使序列中所有数相等。每次操作可乘或除一个质数,花费1金币。解法核心是将问题转化为质因数分解,统计每个质数的指数分布,找到中位数作为调整目标,计算总绝对差作为最小花费。具体步骤:1) 质因数分解每个数;2) 对每个质数统计指数分布并找中位数;3) 计算所有质数的调整花费之和。时间复杂度为O(N√A_i),适用于题目约束。

2026-01-05 13:45:59 1179

原创 CCF-GESP计算机学会等级考试2025年12月五级C++T1 数字移动

题目要求找到最小的x,使得每次操作花费不超过x时,能让序列中每对相同数字相邻。采用二分查找策略,通过合法性校验函数判断候选x是否满足条件。校验函数统计无法移动的数字(大于x),检查它们是否能两两配对。二分查找最终收敛到最小合法x。时间复杂度为O(n log max(A)),适用于题目数据范围。

2026-01-05 11:38:43 1106

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关注的人

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