《贪心王国·第一课闯关挑战》‍☠️ 第一类海盗船系列选最小 第1关基础入门1、题目容量 10货物1 2 3 4 5 最多能装几件2、✅ 正确答案4件1234103、❗ 常见错误 有学生选5 4 9只装2件4、 学习重点目标是“数量最多”不是“体积最大” 第2关顺序陷阱1、题目容量 10货物8 1 9 2 72、❗ 坑点 数据是乱序的3、✅ 正确思路排序 → 1 2 7 8 9→ 12710 → 3件4、❗ 常见错误 不排序直接从前往后选5、 讲解一句话贪心之前很多题必须排序 第3关边界陷阱1、题目容量 10货物2 3 52、❗ 坑点 刚好装满3、❗ 常见错误 写成 10而不是 104、 讲解重点等于也可以装 第4关“贪大”误区1、题目容量 10货物6 4 3 32、❗ 常见错误思路 选最大的6 → 剩4 → 再选4 → 2件3、✅ 正确答案3件334104、 核心讲解这题专门打脸“选最大”的错误贪心 第5关装不满陷阱1、题目容量 10货物6 6 62、✅ 正确答案1件3、❗ 常见错误 有学生会觉得“装不满就不选”4、 讲解重点目标是尽量多不是必须装满海盗船参考程序#include iostream #include algorithm using namespace std; int main() { int n, a[25]; cin n; for(int i 0; i n; i) { cin a[i]; } // 从小到大排序 sort(a, a n); int sum 0; // 当前体积 int cnt 0; // 装了多少件 for(int i 0; i n; i) { if(sum a[i] 500) { sum a[i]; cnt; } else { break; } } cout cnt; } 第二类排队接水选最短时间 第6关基础1、题目3个人3 1 2 最优顺序2、✅ 正确答案1 2 33、❗ 常见错误 按输入顺序不变4、 讲解重点必须排序 第7关直觉误导1、题目时间10 1 12、❗ 常见错误 有学生会让“最长的先”误以为公平3、✅ 正确答案1 1 104、 讲解重点贪心不是“公平”而是“总时间最优” 第8关重复值陷阱1、题目时间5 5 5 52、❗ 坑点 全一样3、✅ 正确结论 顺序无所谓4、 讲解重点当数据相同时贪心策略不唯一 第9关计算陷阱1、题目时间1 2 3 平均等待时间2、❗ 常见错误 只算总时间不算等待3、✅ 正确计算顺序1 2 3等待1 → 02 → 13 → 123总等待 4平均 4 / 34、 讲解重点等待时间是“前面所有人的和” 第10关综合大坑1、题目时间8 3 5 12、❗ 常见错误流程不排序或排序后不会算等待3、✅ 正确步骤排序 → 1 3 5 8等待1 → 03 → 15 → 1348 → 13594、 核心讲解排序 累加 贪心核心套路接水问题参考程序#include iostream #include algorithm using namespace std; int main() { int n; cin n; int t[1000]; for(int i 0; i n; i) { cin t[i]; } sort(t, t n); // 从小到大 long long wait 0; long long sum 0; for(int i 0; i n; i) { sum wait; wait t[i]; } double avg (double)sum / n; cout avg; } 最重要学生最容易犯的 6 大错误总结❌ 错误1不排序直接贪 最常见 对策先排序再贪心❌ 错误2搞错“贪什么”海盗船 → 应该选小 ❗接水 → 应该选快 ❗ 对策 先问目标是什么❌ 错误3把“装满”当目标 正解 是“最多件”不是“刚好满”❌ 错误4边界写错 对策 多强调能等于就必须等于❌ 错误5不会算等待时间 核心一句话每个人的等待 前面所有人的时间❌ 错误6以为贪心永远对非常关键给第二课埋伏笔 引导学生 “如果规则变了还对吗”