【笔试刷题】虾皮-2026.03.10-改编真题
✅ 春招备战指南 ✅
💡 学习建议:
- 先尝试独立解题
- 对照解析查漏补缺
🧸 题面描述背景等均已深度改编,做法和题目本质基本保持一致。
🍹 感谢各位朋友们的订阅,你们的支持是我们创作的最大动力
🌸 目前本专栏已经上线200+套真题改编解析,后续会持续更新的
春秋招笔试机考招合集 -> 互联网必备刷题宝典🔗
虾皮-2026.03.10
这套题整体偏热身。第一题虽然是经典剪绳子,但如果没把“某一段到底继续剪还是直接停下”想清楚,动态规划就很容易写错;第二题几乎没有算法门槛,主要是按 ACM 输入格式稳定读取整行句子。
题目一:礼盒丝带分段
这题看上去像数学题,但在当前范围下直接写动态规划更稳。真正的状态含义不是“剪一刀之后怎样”,而是每一段都要再次判断继续拆和保持原样哪种收益更高。
难度:Mid
题目二:客服短句峰值
这题本质就是数空格。难点并不在算法,而是在读入时别把首行整数后面的换行和后续整句读取搞混。
难度:Low
礼盒丝带分段
问题描述
小柯正在准备一批礼盒。每个礼盒外面都要绑上丝带,仓库里正好有一卷长度为 的长丝带。
为了让礼盒看起来更精致,她决定把这卷丝带剪成至少两段,每一段的长度都必须是正整数。假设剪完后各段长度分别为 ,那么它们满足:
小柯希望这些长度的乘积尽可能大。请输出这个最大乘积。
例如,当 时,可以剪成
,对应乘积为
。
输入格式
输入一个整数 ,表示丝带的总长度。
输出格式
输出一个整数,表示在至少剪成两段的前提下,所有方案中的最大乘积。
样例输入
2
样例输出
1
数据范围
| 样例 | 解释说明 |
|---|---|
| 样例1 | 长度为 |
若输入为 10 |
可以剪成 |
题解
这题表面上是在枚举怎么剪,真正难点在于某一段拿出来以后,到底是“继续剪”更优,还是“就保持这一段不动”更优。
由于 的范围只有
,直接做动态规划最稳妥。
设 dp[i] 表示长度为 i 的丝带,在“允许继续往下拆”的前提下,能够得到的最大乘积。接下来枚举第一刀把它切成 j 和 i-j 两段,那么左右两边都各有两种选择:
- 不再继续剪,直接保留这一段长度。
- 继续剪,使用这段已经算好的最优值。
于是转移就是:
这里的两个 max 很关键,它们正是在处理“继续剪还是停下”的选择。
为什么这样做是对的?
- 任意一种合法方案,都可以看成先切出第一刀,再分别决定左右两部分是否继续拆。
- 枚举
j就覆盖了所有第一刀的位置。 - 对于每个子问题,取“长度本身”和“继续拆出的最优乘积”中的较大值,就保证不会漏掉最优决策。
从小到大计算 dp[2] 到 dp[n] 即可,因为每次转移只会用到更短的长度。
时间复杂度是 ,空间复杂度是
。在本题范围内完全够用。
参考代码
- Python
import sys
input = lambda: sys.stdin.readline().strip()
def solve():
n = int(input())
# dp[i] 表示长度为 i 的丝带能得到的最大乘积。
dp = [0] * (n + 1)
# 从短到长递推,保证用到的状态都已经算好。
for i in range(2, n + 1):
best = 0
for j in range(1, i):
# 左右两段都可以选择“继续剪”或“保持原样”。
left = max(j, dp[j])
right = max(i - j, dp[i - j])
best = max(best, left * right)
dp[i] = best
print(dp[n])
if __name__ == "__main__":
solve()
- Cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
// dp[i] 表示长度为 i 的丝带可得到的最大乘积。
vector<long long> dp(n + 1, 0);
for (int i = 2; i <= n; i++) {
long long best = 0;
for (int j = 1; j < i; j++) {
// 左右两段都可以选择继续拆,或者直接保留长度本身。
long long left = max<long long>(j, dp[j]);
long long right = max<long long>(i - j, dp[i - j]);
best = max(best, left * right);
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
互联网刷题笔试宝典,这里涵盖了市面上大部分的笔试题合集,希望助大家春秋招一臂之力
