穷举 24 种顺序最小是多少
四个任务一共有 24 种排法,用 next_permutation 全部过一遍。 运行下面这段程序: #include <algorithm> #include <iostream> #include <str
写出总等待时间
补全 wait_total:按给定顺序做任务,把每个任务的完成时刻加起来。对 4、1、3、2 输出结果。 (本题用 g++ -std=c++17 -O0 编译。)
交换一处相邻逆序
补全 fix_one:从左往右找第一处相邻逆序(前面的比后面的大),把这两个换过来,返回新顺序。把换之前和换之后的总等待时间用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)
穷举验证排序就是最小
把四个任务的 24 种排法全跑一遍,取出最小的总等待时间;再算一遍按耗时排好的结果。两个数用 / 拼起来输出(穷举的在前)。 (本题用 g++ -std=c++17 -O0 编译。)
把交换论证写成代码
交换论证的核心是一句话:换掉一处相邻逆序,总等待时间不会变大。把 24 种排法全过一遍验证两件事:所有相邻逆序换过来,总和都不变大(应为 true);所有相邻正序换过来,总和也都不变大(应为 false)。两个判断用 / 拼起来输出。 (本
拿到新问题先做什么
想用贪心解一个新问题,第一件事是【0】。
交付贪心解必须附上什么
第 1 步:交付前逐条验收 第 2 步:第 1 条:排会 对上了 第 3 步:第 2 条:找零 对上了 第 4 步:第 3 条:反例 对上了 第 5 步:第 4 条:等待 对上了 第 6 步:第 5 条:背包 对上了 第 7 步:每条都要有
四项一起对得上吗
运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <vector> using nam
第一步区间调度
最终作品第一步:补全 sched,对六场会跑按结束早和按开始早两种,两个场次数用 / 拼起来输出(结束早的在前)。 (本题用 g++ -std=c++17 -O0 编译。)
第二步找零连同反例
补全 greedy 和 best,输出三个数:25/10/5/1 找 63 贪心用几枚、4/3/1 找 6 贪心用几枚、4/3/1 找 6 最优用几枚,用 / 拼起来。 (本题用 g++ -std=c++17 -O0 编译。)