题解:AT_agc048_d [AGC048D] Pocky Game

posted on 2025-02-28 07:48:28 | under | source

省选前写题解增加 RP!

题意:有石子堆 \(a_1\dots a_n\),每次先手在最左边堆取至少 \(1\) 个,后手则在最右边堆取。问谁必胜。\(n\le 10^2\)

莫名想到 P2599,那么不难得到状态定义,\(f_{i,j}\) 表示初始局面下 \(a_i\) 一开始至少是多少先手才能必胜,这是因为具有单调性,\(a_i\) 必胜则 \(a_i+1\) 也必胜。同理 \(g_{i,j}\) 则是对于后手定义。

\(f\) 为例,\(g\) 与之对称。转移分类讨论:

  • \(g_{i+1,j}>a_j\):取光 \(a_i\) 即可获胜,\(f_{i,j}=1\)
  • \(g_{i+1,j}\le a_j\):先手想获胜,必须尽量消耗 \(a_j\) 使其小于必胜分界线,所以肯定每次取一个慢慢耗最优。但是后手除了只取一个尽量维持在必胜态以外,还可以直接取光 \(a_j\)。所以还得保证 \(a_i\ge f_{i,j-1}\)\(f_{i,j}=f_{i,j-1}+a_j-g_{i+1,j}+1\)

\(O(n^2)\)

posted @ 2026-01-15 08:13  Zwi  阅读(3)  评论(0)    收藏  举报