我把自己练习过的学而思编程周赛的题目都整理了一下。虽然网站上有许多高手的解法,但因为我自己也是初学者,所以只用了比较容易理解的方法来分析和解答。如果你也在学习的话,希望这些内容能对你有一点帮助。
2026年
【2026年春第14周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
蚂蚁碰撞 |
⭐ |
字符串 / 双指针 |
去掉前缀 L 和后缀 R(它们不会碰撞),中间非 S 的字符个数即为碰撞次数。 |
| B |
最远距离 |
⭐ |
数学 / 极值 |
曼哈顿距离 \(|x-x'|+|y-y'|\) 可转化为 \(\max((x+y)_{\max}-(x+y)_{\min}, (x-y)_{\max}-(x-y)_{\min})\)。 |
| C |
构建回文(二) |
⭐⭐⭐ |
前缀和 |
区间能重排成回文当且仅当该区间内出现奇数次的字母个数 \(\le 1\),用 \(26\) 维前缀和统计每个区间的字母频次。 |
题目
题解:学而思编程 蚂蚁碰撞
题解:学而思编程 最远距离
题解:学而思编程 构建回文(二)
【2026年春第13周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
安全密码 |
⭐⭐ |
DFS-一维 |
按字典序 \(3 \to 6 \to 9\) 逐位DFS枚举,剪枝跳过禁止组合 \(36\)、\(69\)、\(93\),计数到第 \(k\) 个时输出。 |
| B |
约瑟夫游戏(三) |
⭐⭐ |
队列 |
用队列模拟围圈报数,每次将前 \(a_i \bmod \text{size}\) 个人移到队尾,队首即为淘汰者。 |
| C |
区间质数 |
⭐⭐⭐ |
质数筛 + 前缀和 |
先用埃氏筛预处理 \(10^7\) 内质数,再用前缀和数组 \(s[i]\) 记录前 \(i\) 个数中质数个数,区间查询 \(O(1)\) 回答。 |
题目
题解:学而思编程 安全密码
题解:学而思编程 约瑟夫游戏(三)
题解:学而思编程 区间质数
【2026年春第12周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
排队 |
⭐⭐ |
贪心 / 排序 |
按耐心指数升序排序,依次尝试安排,若当前已安排人数 \(\leq a_i\) 则该学生留下,否则跳过。 |
| B |
牛奶供应 |
⭐⭐⭐ |
递推 / 贪心 |
维护最小有效价格 \(\text{minp}\),每天选择当天生产或从前某天提前生产(加仓储费),取成本最小者。 |
| C |
美食评委 |
⭐⭐⭐ |
模拟 / 前缀和优化 |
枚举相同美味值作为首尾,中间只保留正数贡献,用数组记录首次出现时的前缀和,计算最大子段和。 |
题目
题解:学而思编程 排队
题解:学而思编程 牛奶供应
题解:学而思编程 美食评委
【2026年春第11周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
最长平台(二) |
⭐ |
模拟 |
遍历数列统计连续相同元素的长度,用 \(\text{map}\) 记录每种长度的出现次数,取最大长度及其频次。 |
| B |
平衡点 |
⭐⭐⭐ |
前缀和 |
预处理前缀和与后缀和,再分别累加得到左右引力 \(L[k]\) 和 \(R[k]\),枚举 \(k\) 求 \(|L[k]-R[k]|\) 最小值。 |
| C |
幸运数字 |
⭐⭐⭐ |
质数筛 + 前缀和 |
埃氏筛预处理 \(10^7\) 内质数,再标记所有两质数乘积,最后前缀和统计区间 \([L,R]\) 内幸运数字个数。 |
题目
题解:学而思编程 最长平台(二)
题解:学而思编程 平衡点
题解:学而思编程 幸运数字
【2026年春第10周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数列调整 |
⭐ |
模拟 |
回文数列要求对称位置相等,最小操作次数为所有对称位置 \(|a_i - a_{n-i+1}|\) 之和。 |
| B |
回形矩阵 |
⭐⭐ |
模拟 |
按顺时针或逆时针方向,用方向数组控制边界转向,依次填入 \(1 \sim n \times m\)。 |
| C |
气球游戏 |
⭐⭐⭐ |
双指针 / 滑动窗口 |
维护包含所有 \(m\) 种颜色的最小窗口,右扩左缩,队首冗余时出队优化。 |
题目
题解:学而思编程 数列调整
题解:学而思编程 回形矩阵
题解:学而思编程 气球游戏
【2026年春第9周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
最大回撤 |
⭐ |
模拟 |
维护前缀最大值 \(\max\_pre[i]\),枚举每一天作为卖出点,求 \(\max(\max\_pre[i] - a_i)\)。 |
| B |
最大整数(一) |
⭐⭐ |
自定义排序 |
将数字按奇偶性分离,各自降序排序后按原位置奇偶性回填,得到最大整数。 |
| C |
生活费 |
⭐⭐⭐ |
逆向思维 / 模拟 |
从后往前处理操作,记录最后一次整体操作的标准线,单点操作取 \(\max(v_i, \text{max\_line})\),未操作点取 \(\max(p_i, \text{max\_line})\)。 |
题目
题解:学而思编程 最大回撤
题解:学而思编程 最大整数(一)
题解:学而思编程 生活费
【2026年春第8周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
数组推导 |
⭐ |
模拟 |
\(b_i\) 为前缀最大值,\(a_i\) 最大时取 \(b_i\) 本身,最小时只在 \(b_i\) 首次出现时取 \(b_i\) 其余取 \(0\)。 |
| B |
九宫格键盘 |
⭐ |
字符串 / 模拟 |
预存每个字母在九宫格上的按键次数,遍历字符串累加,空格计 \(1\) 次。 |
| C |
区间外最大公约数 |
⭐⭐⭐ |
前缀GCD + 后缀GCD |
预处理前缀 \(\gcd\) 数组 \(\text{lgcd}[i]\) 和后缀 \(\gcd\) 数组 \(\text{rgcd}[i]\),查询时 \(\gcd(\text{lgcd}[l-1], \text{rgcd}[r+1])\)。 |
题目
题解:学而思编程 数组推导
题解:学而思编程 九宫格键盘
题解:学而思编程 区间外最大公约数
【2026年春第7周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
中心位置 |
⭐ |
模拟 / 前缀和 |
计算前缀和数组,枚举每个位置 \(k\),判断左侧和 \(s[k-1]\) 是否等于右侧和 \(s[n]-s[k]\)。 |
| B |
驼峰与蛇 |
⭐ |
字符串 / 模拟 |
遍历字符串,大写字母前加下划线转小写,下划线后字母转大写,其余直接输出。 |
| C |
分组 |
⭐⭐ |
模拟 |
对每个 \(0\) 位置向左右扫描,更新非 \(0\) 元素到最近 \(0\) 的距离,取最小值。 |
题目
题解:学而思编程 中心位置
题解:学而思编程 驼峰与蛇
题解:学而思编程 分组
【2026年春第6周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
优秀的排列 |
⭐ |
字符串 / 模拟 |
遍历字符串检查:无相邻 \(1\);每个 \(0\) 两边至少有一个 \(1\)(首尾特判)。 |
| B |
降雨统计 |
⭐ |
模拟 |
乌云以每分钟 \(1\) 格向右移动,每个位置降雨时间为该位置左侧(含自身)的乌云数。 |
| C |
三倍子串 |
⭐⭐⭐ |
递推 / DP |
\(\text{dp}[i][r]\) 表示以 \(s[i]\) 结尾、数字和模 \(3\) 余 \(r\) 的子串数,根据当前位模 \(3\) 的值转移。 |
题目
题解:学而思编程 优秀的排列
题解:学而思编程 降雨统计
题解:学而思编程 三倍子串
【2026年春第5周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
奇特的数 |
⭐ |
数学 |
矩阵中 \(a_{ij} = i \times j\),\(m\) 出现次数等于满足 \(i \times j = m\) 且 \(1 \le i,j \le n\) 的因子对 \((i, m/i)\) 个数。 |
| B |
海龟作图 |
⭐ |
模拟 |
维护方向 \(dir\)(\(0\)东 \(1\)北 \(2\)西 \(3\)南),按指令旋转或移动,注意 R 是顺时针(代码中 \(dir+3\))、L 是逆时针(代码中 \(dir+1\))。 |
| C |
Z字形加密 |
⭐⭐ |
字符串 / 模拟 |
按 Z 字形将字符放入 \(k\) 行,方向在首尾行翻转,最后按行拼接输出密文。 |
题目
题解:学而思编程 奇特的数
题解:学而思编程 海龟作图
题解:学而思编程 Z字形加密
【2026年春第4周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
截断数组 |
⭐ |
模拟 / 前缀和 |
计算前缀和,枚举分割点 \(i\),判断左侧和 \(\text{sum}[i]\) 是否等于右侧和 \(\text{sum}[n]-\text{sum}[i]\)。 |
| B |
最小消耗 |
⭐⭐ |
贪心 / 模拟 |
对每个怪兽独立决策:形态 \(0\) 取 \(\min(a, b+c)\),形态 \(1\) 取 \(\min(b, a+c)\),分别消灭或改造后消灭。 |
| C |
特殊数字 \(2\) |
⭐⭐ |
字符串 / 模拟 |
用字符串存储大数,逐位取模判断能否被每个非零数码整除,避免直接对大数取模。 |
题目
题解:学而思编程 截断数组
题解:学而思编程 最小消耗
题解:学而思编程 特殊数字2
【2026年春第3周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
斐波那契字符串 |
⭐ |
递推 / 模拟 |
生成不超过 \(n\) 的斐波那契数列,标记对应位置,斐波那契数输出 O,其余输出 o。 |
| B |
跑车与旅行 |
⭐ |
模拟 |
每到一个城市加满油,若下段距离超过油箱容量则无法到达,否则累加加油花费。 |
| C |
阶梯求和 |
⭐⭐ |
前缀和 |
预处理普通前缀和 \(\text{sum1}[i]\) 与加权前缀和 \(\text{sum2}[i]\),查询时公式转化为 \(\text{sum2}[r]-\text{sum2}[l-1]-(l-1)\times(\text{sum1}[r]-\text{sum1}[l-1])\)。 |
题目
题解:学而思编程 斐波那契字符串
题解:学而思编程 跑车与旅行
题解:学而思编程 阶梯求和
【2026年春第2周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
唯一最小数 |
⭐ |
模拟 / 计数 |
统计每个数字出现次数,找出只出现一次的数中最小值的索引,不存在则输出 \(-1\)。 |
| B |
解密 |
⭐ |
字符串 / 模拟 |
统计连续相同字符个数 \(k\),原始字符为加密字符减去 \((k-1)\) 的偏移(循环取模 \(26\))。 |
| C |
懒惰的牛 |
⭐⭐ |
前缀和 / 滑动窗口 |
将草地按坐标离散化后前缀和,枚举每个位置作为中心,计算覆盖范围 \([i-k, i+k]\) 内的青草总量取最大值。 |
题目
题解:学而思编程 唯一最小数
题解:学而思编程 解密
题解:学而思编程 懒惰的牛
【2026年春第1周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
三角形牧场 |
⭐⭐⭐ |
01背包 / DFS |
将 \(n\) 根木板分配到三条边,枚举所有分配方案(DFS)或用三维DP判断能否构成三角形,海伦公式求最大面积。 |
| B |
疯狂的科学家 |
⭐ |
字符串 / 模拟 |
统计 \(A\) 与 \(B\) 不同的连续段数,每段可用一次操作翻转,答案即为不同段的数量。 |
| C |
更奇怪的照片 |
⭐⭐ |
数学 / 贪心 |
统计奇偶数量,通过合并两个奇数为偶数调整比例,使奇偶交替排列的组数最大化。 |
题目
题解:学而思编程 三角形牧场
题解:学而思编程 疯狂的科学家
题解:学而思编程 更奇怪的照片