写出"交换一处相邻逆序"
补全 fix_one:从左往右找第一处相邻逆序(前面的比后面的大),把这两个换过来,返回新顺序。 把换之前和换之后的总等待时间拼起来输出。
阅读更多 →
写出总等待时间
补全 wait:按给定顺序做任务,把每个任务的完成时刻加起来。对 [4, 1, 3, 2] 输出结果。
阅读更多 →
穷举 24 种顺序,最小是多少
四个任务一共有 24 种排法。运行下面这段程序: from itertools import permutations def wait(order): t = 0 s = 0
阅读更多 →
把一处逆序换过来
四个任务耗时 [4, 1, 3, 2],前两个是一处逆序(大的排在小的前面)。把它俩换过来,看总等待时间的变化。运行下面这段程序: def wait(order): t = 0 s =
阅读更多 →
交换论证的一步是怎么走的
交换论证的每一步是【0】。
阅读更多 →
交换论证在证明什么
交换论证要说明的是【0】。
阅读更多 →
⚠️ 三个数摆在一起看
同一批物品、同一个容量,一次输出三个数:0-1 贪心 / 0-1 最优 / 可切开的贪心。 这三个数就是"什么时候该换 DP"的全部答案。
阅读更多 →
写可以切开的背包
补全 knap_frac:同样按每公斤价值排,装得下就整件拿,装不下就切一块把包填满(切下来的价值用 val * cap // w)。
阅读更多 →
写 0-1 背包的动态规划
补全 knap_dp:dp[c] 表示容量 c 时的最大价值,每件物品容量从大往小更新一遍。输出最大价值。
阅读更多 →
写 0-1 背包的贪心
补全 knap_greedy:按每公斤值多少从高到低排,装得下就整件拿走。输出总价值。
阅读更多 →