ARC112F Die Siedler
题意 : Snuke 使用
游戏里有
可以进行下列操作任意次:
获取一整套卡组。
将
张 号牌换成一张 号牌。
求 Snuke 手上牌数的最小值。
神必题。
特判初始没有牌的情况。
由于换卡总是有收益,不难证明能换就换是最优的。先用这个规则化简
我们把所有卡都倒着换成
然后我们只需考虑仅有
记
把卡包
注意到我们将
操作后
记
- 当
较大时
直接暴力枚举
- 当
较小时
考虑同余最短路。需要求的是满足
记
对于所有
起点是所有
用 BFS ,复杂度为
哪个算法快用那个,复杂度和
接下来就是魔法了!打个表可以发现