- 博客(297)
- 收藏
- 关注
原创 2026《算法高效进阶》信息学奥赛暑期集训营
2026年《算法高效进阶》信息学奥赛暑期集训营面向已掌握C++及基础算法的选手招生,提供线下(机房授课)和线上(直播+回放)两种形式。课程分为A班(系统学习算法与数据结构)和B班(NOIP难度实战训练),并推出联报优惠。福利包括公益模拟赛、金牌导航课程赠送及获奖激励。仅接受教练统一报名,报名即赠教材及OJ账号使用权。集训时间:7月25日-8月9日,目标助力学员冲击普及组/提高组一等奖。
2026-07-21 09:13:49
278
原创 2026年GESP3月认证C++五级真题解析
因为要合并成升序数组,所以当A[i]小于等于B[j]时,取A[i],否则取B[j]。当a[i]>a[j]时,左边数组中从i到m的所有元素都大于a[j],因此逆序对数量增加m-i+1。给定一个包含n个互不相同的正整数的数组A与一个包含m个互不相同的正整数的数组B,请你帮忙计算有多少个数在数组A与数组B中均出现。下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用int表示,则横线处应该填写()。且a[i] > a[j],则a[i]和a[j]是一个逆序对。
2026-04-10 20:57:20
115
原创 2026年GESP3月认证C++三级真题解析
字符’0’的ASCII码是48,字符’1’的ASCII码为49,因此(int)'1’的结果是49。:C++位运算符有明确的优先级(从高到低:~ > <<、>> > & > ^ > |),括号可以强制改变运算顺序,括号内的表达式优先执行,能够完全解决优先级带来的运算顺序问题。:5对2取余即5%2,数学结果为1。常规取余流程图通过循环减法实现:5-2=3,3-2=1,1<2,最终结果为1,逻辑正确,输出结果符合预期。只会保留a的最低二进制位,题目中a的最低位为0,因此表达式结果为0==0,值为true。
2026-04-02 16:22:37
253
原创 2026年GESP3月认证C++二级真题解析
摘要 本文解析了10道C++编程题目,涵盖输入设备、流程图符号、变量命名、逻辑运算、浮点数精度、循环结构等核心知识点。关键结论包括:预装算法不属于输入设备(B);条件判断需用菱形框(D);变量名大小写敏感(D);德摩根定律应用(C);浮点数精度误差导致比较失败(B);循环嵌套与break/continue的差异影响输出结果(A、C、6)。通过逐题解析,系统梳理了C++语法要点和常见编程误区。
2026-04-02 15:54:17
105
原创 2026年GESP3月认证C++一级真题解析
N 是一个正整数。如果 N 的所有奇数位的数位和等于所有偶数位的数位和,则称它是一个“双螺旋数”。例如 12375 的所有奇数位的数位和是9,同时它的所有偶数位的数位和也是9,则 12375 就是一个双螺旋数。:本题考查cin对int类型变量的输入处理规则:cin会读取连续的数字字符(可带正负号),直到遇到非数字字符,将合法数字转为整数赋值给变量,剩余字符留在输入流,不会直接报错。:小明想要快速知道任给一个正整数中有多少个奇数位(数位值是奇数),下面的C++代码是其实现,横线处应该填入的代码是()。
2026-04-02 15:51:10
139
原创 GESP六级通关秘籍:搜索 2.广度优先搜索
总而言之,BFS是解决“最短路径”和“层序处理”问题的基石。掌握它,不仅能解决迷宫寻路,更能应对复杂的状态空间搜索(如八数码)和依赖分析(如拓扑排序)。下表按类别整理了题目,难度覆盖入门到提高。类别题目编号题目名称来源/标签核心考察点与提示1. 无权图最短路P1443马的遍历普及/提高-BFS最基础模板:在棋盘上求马跳到各点的最少步数。P1746离开中山路普及/提高-二维网格最短路:带障碍的迷宫,求起点到终点的最短路径。P1135奇怪的电梯普及/提高-状态转移BFS。
2026-02-08 11:04:47
80
原创 贪心算法 匹配/对抗贪心 洛谷 P1650 田忌赛马
代码的核心问题是贪心逻辑不完整(未跟踪齐王弱马)、循环方式不合理,导致无法得到最优解。正确解法的核心是升序排序+四指针贪心,优先级为「赢最强→送最弱→赢最弱→最小化损失」。该问题是典型的贪心应用题,无需复杂的二分图或费用流,抓住「能赢则赢,必输止损」的核心即可高效解决。
2026-02-07 11:17:58
981
原创 贪心算法 匹配/对抗贪心 洛谷 P1809 过河问题
核心算法是贪心,核心逻辑是「优先送走两个最慢的人,选择局部最优策略,逐步减少待过河人数」。排序是基础,两种往返策略是核心,边界处理是补充,三者结合实现高效求解(时间复杂度O(n log n),满足n≤10^5的数据要求)。两种策略的选择是关键,通过对比和,确保每次送走双慢的耗时最少。cin.tie(0);int n;cin >> n;i < n;int m = n;// 策略1:最快的人分两次送两个最慢的人。
2026-02-05 17:34:50
1041
原创 GESP五级通关秘籍 贪心算法 常见题型解题模板
排序规则:必须按区间「右端点b_i」升序排序,这是贪心算法生效的前提。贪心策略:只在当前区间无法被上一个点覆盖时,选择当前区间的右端点作为新点,最大化覆盖后续区间。核心思想:通过局部最优(每个新点覆盖尽可能多的区间),实现全局最优(最少点数量),时间复杂度主要由排序决定(O(N log N)1.2最大不相交区间数量 例题:P1803 凌乱的yyy / 线段覆盖排序规则:必须按区间「右端点b_i」升序排序,这是获取最多区间的前提。贪心策略。
2026-02-04 20:38:03
74
原创 GESP五级通关秘籍 贪心算法 3匹配/对抗贪心
你原代码的核心问题是贪心逻辑不完整(未跟踪齐王弱马)、循环方式不合理,导致无法得到最优解。正确解法的核心是升序排序+四指针贪心,优先级为「赢最强→送最弱→赢最弱→最小化损失」。该问题是典型的贪心应用题,无需复杂的二分图或费用流,抓住「能赢则赢,必输止损」的核心即可高效解决。P1809 过河问题核心算法是贪心,核心逻辑是「优先送走两个最慢的人,选择局部最优策略,逐步减少待过河人数」。排序是基础,两种往返策略是核心,边界处理是补充,三者结合实现高效求解(时间复杂度O(n log n),满足。
2026-02-04 09:48:04
75
原创 GESP五级通关秘籍 贪心算法 2损失最小化(代价最小化)
P1969 [NOIP 2013 提高组] 积木大赛。P1031 [NOIP 2002 提高组] 均分纸牌。P5019 [NOIP 2018 提高组] 铺设道路。P14361 [CSP-S 2025] 社团招新。线性贪心 中的 相邻调整 类型。P3817 小A的糖果。
2026-02-03 18:39:04
65
原创 GESP五级通关秘籍 贪心算法 1区间类贪心-1.4区间分组问题
常见分组策略按左端点排序最小堆:用于最少分组问题按右端点排序:用于最多不重叠区间数扫描线算法:统计最大重叠区间数。
2026-02-01 22:17:23
94
原创 GESP五级通关秘籍 贪心算法 1区间类贪心-1.3区间覆盖问题
P2082 区间覆盖(加强版) - 标准区间覆盖P2376 [USACO09OCT] Allowance G - 类似区间覆盖的分配问题P1514 引水入城 - 复杂区间覆盖问题。
2026-02-01 21:06:46
67
原创 GESP五级通关秘籍 贪心算法 1区间类贪心-1.2区间选点问题
本题贪心核心是按右端点排序+右侧优先种树,最大化树木的复用率,从而得到最少总树数。关键步骤是「排序区间」和「从右往左补充种树」,这两个操作是实现全局最优的核心。标记数组的使用保证了高效查询和修改区间内的种树状态,适配题目数据规模。
2026-02-01 20:54:16
67
原创 GESP五级通关秘籍 贪心算法 1区间类贪心-1.1最大不相交区间/活动安排类
P1204 [USACO1.2] 挤牛奶 Milking Cows区间合并的变形,求最长覆盖和最长间隔这是一个经典的区间调度问题,也称为活动选择问题。我们需要从一组区间中选择尽可能多的互不重叠的区间。问题转化:贪心策略:算法正确性证明:代码说明数据结构:排序:贪心选择:输出:对于样例输入:程序执行过程:区间定义:排序的重要性:数据范围:这个算法是解决区间调度问题的最优解,能够保证在 O(N log N) 的时间内找到最多的互不重叠区间。这道题是一个区间合并问题。我们需要将重叠的区间合并,然后找出
2026-02-01 19:24:34
76
原创 GESP六级通关秘籍:映射map
输入两个星球名称(字符串),将每个字母转换为对应数值(A=1,B=2,…,Z=26)并求和,判断两数乘积是否为47的倍数,若是输出“GO”,否则输出“STAY”。map的核心适用场景:键值对关联(如数字/字符串→次数/数据)、动态统计频率、快速查找唯一键对应的值,核心解决“标识→数据”的映射需求;入门必刷:洛谷P1554(数字频率统计)、P1200(字符映射),掌握map的增删查改基础用法;进阶提升:洛谷P1026(字符串统计+排序)、P1003(坐标映射),理解map与vector等容器的结合使用。
2026-01-25 15:31:27
71
原创 GESP六级通关秘籍:集合set
set的核心适用场景:自动去重、O(logn)快速查找/插入/删除、动态维护有序集合,尤其适合需要“去重+有序”或“快速存在性判断”的问题。入门必刷:洛谷P1059(基础去重)、P1540(存在性判断),掌握set的核心用法;进阶提升:洛谷P1168(双set维护中位数),理解set的有序特性和灵活运用技巧。
2026-01-25 15:21:38
47
原创 GESP六级通关秘籍:树的遍历1.树的高度/深度计算
递归DFS计算深度的核心是后序遍历:先算左右子树深度,再推导当前节点深度;递归终止条件是“空节点返回0”,当前节点深度=max(左,右子树深度)+1;递归版代码简洁但有栈溢出风险,处理1e6级数据需改用迭代版(BFS/迭代DFS)。
2026-01-25 12:02:11
50
原创 GESP六级通关秘籍:树的遍历
P1120 小木棍(非树,但类似思想)或P3379 [模板]最近公共祖先(LCA)(需要子树大小)3.最近公共祖先(LCA):通过遍历(如DFS)可以预处理节点深度,进而求LCA。P1364 医院设置(求带权树的重心)或P1395 会议(树的重心)P3379 【模板】最近公共祖先(LCA)(也可以用欧拉序求LCA)2.子树大小(节点数)计算:通过遍历可以统计每个节点的子树大小。8.判断树的结构(同构等):通过遍历可以获取树的结构信息。1.树的深度/高度计算:通过遍历可以计算树的深度或高度。
2026-01-24 14:48:52
161
原创 GESP六级通关秘籍(01背包:6带有特殊约束(如互斥、依赖、数量限制、正负收益等)的 01 背包)
物品价值 / 消耗含负数、选法需满足额外逻辑(如选 A 则不能选 B)等,可通过状态调整适配 01 背包模型。例题:1.P1064 [NOIP 2006 提高组] 金明的预算方案。
2026-01-21 20:04:55
144
原创 GESP六级通关秘籍(01背包:5多维限制问题(多维 01 背包))
朴素三维DP:直观但空间开销大,保留了所有中间状态。滚动数组优化:空间效率高,但只保留最终结果。根据题目数据范围(H,T ≤ 400,n ≤ 50),朴素三维DP需要约 32 MB 内存,在大多数情况下可以接受,但不如滚动数组优化版本高效。
2026-01-15 21:16:58
93
原创 GESP六级通关秘籍(01背包:3求方案是否可行 / 能否恰好装满)
dp[i][j]表示在唱完第i首歌后,是否可以达到音量jtrue或false有n个物品(题目),每个物品有重量(时间),需要将这些物品放入两个容器(左右大脑)中,使得两个容器的总重量差最小。每个题目只能做一次,只能分配给一个大脑(左脑或右脑),所以每个题目只能使用一次,这是01背包的特性。
2026-01-15 20:04:14
66
原创 GESP七级通关秘籍(选择判断题)
图的分类:无向图(边无方向,如双向道路)、有向图(边有方向,如单向车道);节点的度:无向图中节点连接的边数,有向图中分为入度(指向节点的边数)和出度(离开节点的边数);图的存储:C++ 中常用两种方式——邻接矩阵(二维数组,适合节点少、边多的稠密图)、邻接表(vector 数组,适合节点多、边少的稀疏图);BFS(广度优先搜索):“逐层扩散”的遍历方式,像“水波涟漪”,用队列实现,适合找“最短路径”(无权重图);
2026-01-14 21:08:41
156
原创 GESP六级通关秘籍(选择判断题)
树是一种“非线性”的数据结构,长得像现实中的树(倒过来的):最顶端的节点叫“根节点”(比如树根),每个节点下面挂的子结构叫“子树”,节点之间的连接叫“边”,没有子节点的节点叫“叶子节点”(比如树叶)。比如家谱就是典型的树结构——爷爷是根,爸爸、叔叔是爷爷的子节点,你是爸爸的子节点,你没有孩子就是叶子节点。
2026-01-14 20:59:06
428
原创 GESP五级通关秘籍(选择判断题)
对数增长极慢(n=1e6时,log2(n)≈20),O(n log n)远快于O(n²)。复杂度为n的若干次幂(如O(n)、O(n²)、O(n³)),次数越高,n增大时算法越慢。用大O记号(O())衡量算法“快慢”(时间复杂度)和“占内存”(空间复杂度),仅保留主导项(忽略常数、低次项)。分治思想的算法,将解空间拆为两部分,排除不可能的部分,逐步缩小范围找答案,分为“二分查找”(找元素)和“二分答案”(找最优解)。答:29是素数(仅1和29整除),39是合数(3×13=39),1既不是素数也不是合数。
2026-01-14 20:38:41
339
原创 GESP四级通关秘籍(选择判断题)
/ 定义结构体(包含嵌套结构体)int age;// const成员:初始化后不可修改// 嵌套结构体(地址属性)} addr;// 构造函数(初始化const成员和嵌套结构体)// 结构体作为函数参数(值传递:拷贝副本)cout << "ID:" << s.id << ",姓名:" << s.name << ",年龄:" << s.age << endl;cout << "地址:" << s.addr.city << s.addr.street << endl;
2026-01-14 20:14:27
246
原创 GESP二级通关秘籍(选择判断题)
误以为“IP地址在全球唯一”:实际IP地址分“公网IP”(全球唯一)和“内网IP”(比如192.168开头,仅内网唯一),考试可能考“内网IP是否唯一”,要注意范围限定。ASCII码是给“英文字母、数字、符号”编的“数字编号”,电脑存字符时,其实存的是这个编号(比如存‘A’,实际存的是65)。“重复里套重复”,比如“打印10行,每行打印5个星号”(外层循环控制行数,内层循环控制每行的星号数)。“选了又选”的逻辑,比如“先判断是否及格,及格了再判断是良好还是优秀”,就是分支里套分支。
2026-01-14 20:08:50
117
原创 GESP三级通关秘籍(选择判断题)
计算机只认识0和1,所以整数在电脑里都是以二进制形式存储的。原码、反码、补码就是“把整数翻译成二进制”的三种规则,核心是解决“负数怎么用二进制表示”的问题(正数的三种编码完全一样)。
2026-01-14 20:00:14
120
原创 GESP一级通关秘籍(选择判断题)
语法类==和混淆、分号/括号遗漏、关键字误用、输入输出头文件缺失。逻辑类:循环边界错误、悬空else、短路逻辑忽略、浮点型精度判断错误。操作类:文件路径含中文、注释嵌套、调试时不看中间变量、输出格式不符要求。这些易错点都是新手最常踩的坑,备考时需结合实际敲代码练习,重点关注“语法细节”和“逻辑边界”,通过多测试不同用例(如0、负数、边界值)规避错误。
2026-01-14 19:38:37
161
原创 2025年GESP12月认证C++四级真题解析
摘要 本文包含11道C++编程题目,涵盖指针、数组、函数参数传递、结构体和排序算法等知识点。每题2分,总分30分,主要考察学生对C++基础语法的掌握程度。题目包括指针定义与解引用(第1-4题)、二维/三维数组遍历(第4-5题)、变量作用域(第6题)、函数传参方式(第7题)、结构体操作(第8题)、递归算法(第9题)和排序稳定性判断(第10题)。最后第11题要求补全选择排序算法代码片段。每道题均提供标准答案和详细解析,适合用于检验C++基础知识的掌握情况。
2025-12-31 16:31:57
316
原创 2025年GESP12月认证C++二级真题解析
摘要 本文包含11道C++编程与计算机基础单选题,每题2分,覆盖以下知识点: 计算机硬件组成(处理器功能) 网络类型划分(LAN/PAN/MAN/WAN) C++变量命名规则(关键字限制) 循环小数位数计算(模运算应用) 浮点数输出格式(%g的截断规则) 数字编码校验位算法(整数除法与取模) 循环与条件判断(负数的模运算结果) 嵌套循环次数计算(奇数和累加) 循环控制语句(break/continue执行逻辑) 循环结构等效性(for与while转换差异) 循环终止条件与continue的交互作用 典型题型
2025-12-31 15:57:35
342
原创 2025年GESP12月认证C++一级真题解析
摘要 本文包含13道C++编程选择题,每题2分,涉及语法、运算符、循环、条件判断等知识点。题目考察了变量命名规则、运算符优先级、赋值语句、循环控制、格式化输出等内容。部分题目解析与标答存在差异,例如第4题逗号表达式输出应为5但标答为4,第6题赋值运算结果应为4 4但标答为3 4等。这些题目适合用于检验基础编程能力,但需注意部分标答可能存在争议,建议结合具体编译环境验证。最后一题考察"漂亮数"判断,要求填写数字某位能被3整除的条件表达式。
2025-12-31 15:45:31
738
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅