【题解】CF1374E2 Reading Books (hard version)
思路比较好想但写起来比较阿拉丁,大分讨。
大概是记忆中第一次独立做出 *2500
目前是 cf 最优解 rk1
Sol
首先把书按时间排序。
然后我们假定前 \(m\) 本书即为答案。考虑一本书一本书换进去。
现在我们的目标是找到一种合法方案,但不要求时间最优。
记 \(c1\) 表示两者都喜欢的书的数量,\(c2\) 为 Alice 喜欢,\(c3\) 为 Bob 喜欢,\(c4\) 为都不喜欢。
若当前这本书只有 Alice 喜欢并且 \(c1+c2<k,c1+c3>k\) 那么可以把这本书换进去。
只有 Bob 喜欢同理。
若当前这本书两者都喜欢,并且 \(c1+c2 \ge k,c1+c3<k\) 或 \(c1+c2<k,c1+c3 \ge k\),那么可以把这本书换进去。
是否合法做完了,然后考虑更优的方案。
若有一种只有一个人喜欢的多了,那么可以考虑用一本两人都不喜欢的书放进去看看是否更优。
一本两人都喜欢的和一本两人都不喜欢的可以替换一本 Alice 喜欢的和一本 Bob 喜欢的。
然后大力分讨即可。情况有点多,我 WA 了 \(6\) 发。
link

浙公网安备 33010602011771号