logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

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

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

#c++#算法#开发语言
CCF-GESP计算机学会等级考试2026年3月六级C++T2 完全二叉树

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

#c++#深度优先#算法
CCF-GESP计算机学会等级考试2026年3月六级C++T1 选数

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

#c++#开发语言
CCF-GESP计算机学会等级考试2026年3月五级C++T2 找数

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

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

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

#c++#算法#java
CCF-GESP计算机学会等级考试2026年3月一级C++T1 交朋友

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

#c++#开发语言
CCF-GESP计算机学会等级考试2026年3月四级C++T2 礼盒排序

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

#c++#开发语言
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)*位数),适用于给定数据范围。

#c++#开发语言
CCF-GESP计算机学会等级考试2026年3月三级C++T1 二进制回文串

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

#c++#算法#开发语言
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)。

#c++#算法#开发语言
    共 106 条
  • 1
  • 2
  • 3
  • 11
  • 请选择