There’s a way back home
2021.11.06 模拟赛
A. 下棋
记 表示 个白色棋子, 个黑色棋子,后缀里白色比黑色最多多 个,黑色比白色最多多 个
每次枚举放那个棋子
白色棋
黑色棋
B. 出租车
考虑只需要记录当前到了第几个人,当前目标是 剩下三个人目标为 的状态
记忆化搜索
每次枚举送一个人到目的地或者上一个人爆搜即可
C. 堆石子
折半爆搜即可,合并的时候拿个 set 找到最大的小于 的值合并
D. 不稳定的导弹系统
先考虑这个交叉的限制,像是个最小割,大力拆点,把一个点变成横竖两个方向的点,之间连一条正无穷的边
如果一个导弹能攻击肯定是攻击最大的区域,所以把导弹到攻击位置依次连边,然后横边连源点,竖边连汇点
这样最小割就能求出来无交叉最大值
但是问题是如果有一个行/列的最大值不能选不意味着全都不能选,它可以选次大值或者次次大值之类的
考虑我们答案是 得到的 ( 是不考虑交叉选择的点)
我们可以把这个操作整合进 里,具体的,在顺次连接导弹到攻击区域的边的时候流量设置为
是当前点的点权,这样的话如果去割到了这个边贡献会是 就是我们想要的