Loading

AT_arc112_f [ARC112F] Die Siedler

首先考虑最终状态下该如何操作,显然能换牌就换牌。然而问题仍然非常复杂,该怎么继续思考呢?

我们打开题解发现,在这个问题中,对于一个局面 (c1,c2,,cn),与另一个局面 (k,0,,0) 是等价的,为什么呢?因为我们有能换就换的策略,对于第一种牌若不断采取能换就换的策略,肯定可以到达第一种局面。

我们采取这种巧妙的方式使问题变得更加简单。对于每个牌堆或者牌包现在都能用一个数表示了,具体的,我们设 di 表示这个数,那么 di=i=1nsi,j2i1(i1)!。然而,如果 di2nn! 怎么办?显然我们会让它操作一轮,然后使 didi(2nn!)+1

那么设最终牌数为 T,则

T=S+i=1mdixi+(12nn!)xm+1

如果令 dm+1=12nn!,并将 S 移项,于是这会是一个 m+1 元的不定方程,而我们可以并不关心解,我们只需要对于每个 T 判断是否有解即可,可以用裴蜀定理判,设 G=gcd(d1,d2,,dm+1),如果 G 很小,我们可以使用同余最短路,如果 G 很大,则 T=Gk+SmodG,可以直接枚举 T

然后就做完啦!

作者:lalaouye

出处:https://www.cnblogs.com/lalaouyehome/p/18546041

版权:本作品采用「114514」许可协议进行许可。

posted @   lalaouye  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示