int best=0, cur=0;
for(int i=1;i<=n;i++){
cur=max(__, cur+a[i]); // 延续当前段,或以 a[i] 重新开始
best=max(best, __);
}
- 第 1 空应填什么?答案:a[i](即 max(a[i], cur+a[i]))解析:要么把 a[i] 接在当前段后,要么以 a[i] 作为新段的起点。
- 第 2 空应填什么?答案:cur解析:用当前段和 cur 更新历史最大值 best。
int best=0, cur=0;
for(int i=1;i<=n;i++){
cur=max(__, cur+a[i]); // 延续当前段,或以 a[i] 重新开始
best=max(best, __);
}
本题收录于「CSP-S 提高级 初赛题库」,共 51 道题,全部提供答案与解析。可进入在线练习系统按知识点随机组卷、自动批改并归集错题。
进入在线练习 查看完整试卷 本类全部题目