我把自己练习过的学而思编程周赛的题目都整理了一下。虽然网站上有许多高手的解法,但因为我自己也是初学者,所以只用了比较容易理解的方法来分析和解答。如果你也在学习的话,希望这些内容能对你有一点帮助。
2026年
【2026年春第14周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
乘积最大 |
⭐⭐⭐ |
贪心 |
将数码降序排序后循环分配到三个数,调整使三数差值最小(和固定时差小积大),补 \(0\) 情况特判。 |
| B |
智能饭盒 |
⭐⭐⭐ |
01背包(二维) |
\(f[j][k]\) 表示凑出至少 \(j\) 克脂肪、\(k\) 克蛋白质的最少食物数,逆序枚举实现01背包,答案为 \(f[x][y]\)。 |
题目
题解:学而思编程 乘积最大
题解:学而思编程 智能饭盒
【2026年春第13周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
二元函数 |
⭐⭐ |
数学 / 双指针 |
遍历 \(a\),维护 \(b\) 使 \(f(a,b) \ge n\),双指针找满足条件的最小 \(f(a,b)\)。 |
| B |
在两个数列之间 |
⭐⭐⭐ |
线性DP-一维 |
\(f[i][j]\) 表示第 \(i\) 位选 \(j\) 的方案数,前缀和优化转移,满足 \(a_i \le j \le b_i\) 且非递减。 |
题目
题解:学而思编程 二元函数
题解:学而思编程 在两个数列之间
【2026年春第12周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
vs怪物5 |
⭐⭐⭐ |
完全背包 |
将魔法视为可无限选取的物品,\(a_i\) 为体积、\(b_i\) 为代价,求达到至少 \(H\) 体积的最小代价。 |
| B |
点菜 |
⭐⭐⭐⭐ |
01背包变体 |
前缀DP + 后缀DP预处理,枚举每道菜作为最后点的菜,分配剩余时间给前后两部分。 |
题目
题解:学而思编程 vs怪物5
题解:学而思编程 点菜
【2026年春第11周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
买一送一 |
⭐⭐⭐ |
完全背包变体 |
按价格排序预处理 \(maxd[i]\)(价格小于 \(p_i\) 的最大美味度),完全背包转移时收益为 \(d_i + maxd[i]\)。 |
| B |
假币购物 |
⭐⭐⭐⭐ |
完全背包 + 01背包 |
第一阶段完全背包求制造每种面值假币的最小成本,第二阶段01背包在预算 \(W\) 内选商品最大化总价格。 |
题目
题解:学而思编程 买一送一
题解:学而思编程 假币购物
【2026年春第10周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
汽车变速 |
⭐⭐⭐ |
线性DP-一维 |
\(f[i][j]\) 表示第 \(i\) 秒速度为 \(j\) 时的最大路程,枚举前一秒速度 \(k \in [j-d, j+d]\) 转移,答案为 \(f[t][v_2]\)。 |
| B |
购买模型 |
⭐⭐⭐ |
线性DP-一维 |
\(dp[i]\) 表示以第 \(i\) 个模型结尾的最长合法序列,枚举 \(i\) 的所有因子 \(j\)(\(j < i\) 且 \(s_j < s_i\))转移,取 \(\max(dp[j]+1)\)。 |
题目
题解:学而思编程 汽车变速
题解:学而思编程 购买模型
【2026年春第9周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
删除一个元素 |
⭐⭐ |
线性DP-一维 |
正向DP求以 \(i\) 结尾的最大子段和 \(f[i]\),反向DP求以 \(i\) 开头的最大子段和 \(g[i]\),枚举删除位置取 \(\max(f[i-1]+g[i+1], f[i-1], g[i+1])\)。 |
| B |
火灾 |
⭐⭐⭐ |
01背包 |
按截止时间 \(d_i\) 升序排序,01背包逆序枚举时间上限为 \(d_i-1\),求截止时间前能获得的最大价值。 |
题目
题解:学而思编程 删除一个元素
题解:学而思编程 火灾
【2026年春第8周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
真因数之和 |
⭐⭐⭐ |
01背包 / 筛法预处理 |
筛法预处理每个数的真因数,计数型01背包求和为 \(n\) 的方案数,每个真因数只能使用一次。 |
| B |
热气球升空 |
⭐⭐⭐ |
01背包(最值型) |
物品成本 = 重量 \(w_i\) + 体积成本 \(v_i \times c\),求凑出体积 \(j\) 的最小成本,找成本不超过 \(m\) 的最大体积。 |
题目
题解:学而思编程 真因数之和
题解:学而思编程 热气球升空
【2026年春第7周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
倍数序列2 |
⭐⭐⭐ |
线性DP-二维 |
\(dp[i][j]\) 表示长度为 \(i\)、结尾为 \(j\) 的序列数,枚举 \(j\) 的因数 \(k\) 转移,\(dp[i][j] += dp[i-1][k]\)。 |
| B |
幸运密码 |
⭐ |
模拟 |
枚举所有 \(1000\) 种三位数密码,用 find 依次检查每位数字是否在字符串中按顺序出现。 |
题目
题解:学而思编程 倍数序列2
题解:学而思编程 幸运密码
【2026年春第6周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
素数加法算式 |
⭐⭐ |
DFS-一维 |
枚举每个位置是否插入加号,计算所有分割方案的和,判断是否为素数。 |
| B |
变种走格子问题 |
⭐⭐⭐ |
线性DP-一维 |
\(dp[i]\) 表示到第 \(i\) 格的方法数,前缀和优化区间转移,\(dp[i] = \sum_{j=1}^{k} (s[i-L_j] - s[i-R_j-1])\)。 |
题目
题解:学而思编程 素数加法算式
题解:学而思编程 变种走格子问题
【2026年春第5周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
简单除法问题 |
⭐⭐ |
高精度 |
高精度整数除法计算 \(n/m\),结果对 \(10007\) 取模;或直接用字符串逐位取模技巧。 |
| B |
折半与最小值 |
⭐⭐⭐⭐ |
整数二分 |
二分答案 \(x\),检查每根木棒能否分割成至少 \(n+m\) 段且每段长度 \(\ge x\),贪心计算每根木棒最多可分多少段。 |
题目
题解:学而思编程 简单除法问题
题解:学而思编程 折半与最小值
【2026年春第4周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
射击王 |
⭐⭐⭐⭐ |
整数二分 |
二分答案 \(mid\),计算每个气球最晚开始时间 \(t_i = (mid - h_i) / s_i\),排序后检查是否满足 \(t_i \ge i-1\)。 |
| B |
展览会 |
⭐⭐⭐⭐ |
整数二分 |
二分答案 \(mid\),贪心验证:按位置排序后从左到右选价值 \(\ge mid\) 且间距 \(\ge D\) 的画,检查能否选够 \(m\) 幅。 |
题目
题解:学而思编程 射击王
题解:学而思编程 展览会
【2026年春第3周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
买整数 |
⭐⭐ |
整数二分 |
二分答案 \(n\),检查 \(a \times n + b \times d(n) \le x\) 是否成立,\(d(n)\) 为 \(n\) 的位数,找最大可行的 \(n\)。 |
| B |
数列分段3 |
⭐⭐⭐ |
线性DP-一维 |
\(dp[i]\) 表示前 \(i\) 个元素最多分多少段,枚举分割点 \(j\),若区间 \([j+1,i]\) 平均数 \(\le k\) 则 \(dp[i] = \max(dp[i], dp[j]+1)\)。 |
题目
题解:学而思编程 买整数
题解:学而思编程 数列分段3
【2026年春第2周】
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
vs怪物4 |
⭐⭐ |
记忆化搜索 |
递归计算消灭体力为 \(x\) 的怪物所需攻击次数,\(f(x) = 2 \cdot f(\lfloor x/2 \rfloor) + 1\),用 map 存储已计算结果避免重复。 |
| B |
我们不喜欢WA |
⭐⭐⭐⭐ |
线性DP-二维 |
预处理三位组合合法性矩阵,\(dp[i][b][c]\) 表示长度为 \(i\)、最后两位为 \(b,c\) 的合法序列数,枚举前一位 \(a\) 转移。 |
题目
题解:学而思编程 vs怪物4
题解:学而思编程 我们不喜欢WA
【2026年春第1周】
参考链接:学而思编程每周练习赛-第01周-习题视频讲解与试题分析
赛情分析
| 题号 |
题目名称 |
难度 |
考察算法 |
一句话思路总结 |
| A |
重新涂色 |
⭐⭐ |
BFS-二维 |
从起点BFS求到终点的最短路径,答案为总白格数减去最短路径长度(路径上的白格必须保留,其余可涂黑)。 |
| B |
六面世界3 |
⭐⭐⭐ |
DFS-二维 / 连通分量 |
六边形网格有 \(6\) 个方向,坐标偏移后DFS/BFS遍历所有黑色格子,统计连通分量个数。 |
题目
题解:学而思编程 重新涂色
题解:学而思编程 六面世界3