交付贪心解必须附上什么
第 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 编译。)
第三步最短等待连同穷举
补全 wait_total,输出两个数:穷举 24 种排法的最小值,和按耗时排好之后的值。 (本题用 g++ -std=c++17 -O0 编译。)
第四步背包三连
补全三个背包函数里的 knap_dp 和 knap_frac,输出 0-1 贪心 / 0-1 最优 / 可切开的贪心三个数。 (本题用 g++ -std=c++17 -O0 编译。)
交付贪心解加正确性依据
这是这条路线的最终作品。前面写过的函数都已给好,只差区间调度和背包 DP 两处。一次验完五条:六场会按结束早 4 场、按开始早 1 场;25/10/5/1 找 63 贪心 6 枚且和最优一致;4/3/1 找 6 贪心 3 枚、最优 2 枚;
对拍到底在验证什么
在真机上拿暴力解和你的贪心对拍大量随机数据,是为了【0】。
写区间调度
场景:实验机上 ~/work/gr/sched.cpp 读入若干个区间,要输出最多能选出几个互不重叠的区间,可 max_meetings 还没写。 任务:补全 max_meetings(区间 [s, e) 左闭右开,首尾相接不算重叠)。ma
十万个区间一秒排完
场景:~/work/gr/big.cpp 也算最多能选几个不重叠的区间,结果是对的,可它每一步都把剩下的区间整个扫一遍找结束最早的,十万个区间要跑很久。 任务:改写 big.cpp,让 10 万个区间在 1 秒内算完。make 编译(-O2