博弈论专练

ABC261Ex

显然有一个倒序DP

{fi,0=minijfj,1+w(i,j)fi,1=maxijfj,0+w(i,j)

目标 fS,0

可以看作用 dijkstra 跑最短路。

fi,1 的所有 fj,1 确定时才确定 fi,1,再将其扔到最短路里面跑。

如果无法确定一个f,就说明它后续会一直更新?

首先边界是可以确定的

那么min如果钦定只能由已经OK的1来转,一定是正确的,后续的1不可能更新它

而更新完了的1也是可以如此操作的

agc048D

可以发现的是,当某一堆无穷多的时候,先拿到这一堆的人获胜,因为它可以磨到另一个人操作完

打个爆搜看看

我们发现若固定局面不变,单独增加第一堆的个数,其胜负呈现00000000000001111111111111,单独增加最后一堆其胜负呈现111111111111110000

说明这玩意单调。。。。。。。。。。。

那考虑维护分界点,设f[l,r],g[l,r]分别表示当前先手,若先手赢得[l,r],则当前第一堆最少需要 f[l,r] 个,当前后手,若后手赢得 [l,r],则当前最后一堆至少需要 g[l,r]

但是有什么转移的规律吗

显然有单调性随着端点移动

打一个 f[l,r]g[l,r] 的表看看

发现

f[l,r]=a[r]g[l+1,r]+1+f[l,r1],当 g[l+1,r]>a[r],f[l,r]=1

arc116F

显然ICG

显然的一个贪心策略是删除两端对于自己而言不优的那个元素。

显然我要大的肯定是删小的,反之同理

显然每个独立,不然可以交换操作顺序,会抢

而且一定有办法让答案取到中间的数字,且这样做应当是最优的

那么当n是偶数的时候,显然是留下 mid,mid+1 里对先手有利的一个,因为最后一步是先手

否则n是奇数的时候,mid显然是可以保留的,但是后面后手可以想办法让你取小的,所以应该是a[mid],(a[mid+1].a[mid1] 里较先手优的)中较先手劣的

所以长度为奇数的显然独立操作不影响先后手,而长度为偶数的显然也是轮流操作

然后长度为偶数的会交替先后手,所以应该按照贡献贪心取?

考虑枚举第一步进行的操作之后能够得到的答案

先手肯定取较大者,后手肯定取较小者,设弄出这玩意是 (a,b)

考虑邻项交换,(a[i],b[i])

如果交换前更优,且先是先手操作就有 a[i]+b[i+1]>a[i+1]+b[i]a[i]b[i]>a[i+1]b[i+1]

排序取即可。

做完了?

做完了。

「省选联考 2023 day2」过河卒

智障模拟题,直接不讲

「HAOI2015」数组游戏

根据翻硬币游戏的结论,我们只关心最开始的白棋位置,变为求解若干 100000000 局面的 sg 值。

长度应当是某个 nx ,所以共有 O(n) 种不同 SG值。

对于每种值,我们考虑其后继局面,例如 10000,其后继是 00000,01000,01100,01110,01111,相当于是这些局面的 mex

发现每个局面的 sg 值是一个前缀异或和,从当前白棋位置开始,最初是 0。利用数论分块再优化即可。

复杂度应当是 O(n34) 级别的,也不太会证明。

posted @   spdarkle  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示