arc 题目整理

arc192a

注:一个位置被覆盖当且仅当位置 \(i\) 满足题目中的两个条件。

首先想到贪心。不难发现,形如 ARCRAR... 的字符串在 \(n\)\(4\) 的倍数的时候可以覆盖整个字符串。

接下来沿着 \(n\)\(4\) 的余数继续分讨。如果这个余数是 \(1\)\(3\),沿用上面的构造,可以做到只有一个位置无法覆盖,也就是说当 \(a\) 全部为 \(0\) 时无解。

最后是 \(n\)\(4\)\(2\) 的情况。这时候我们会剩下两个位置,接下来考虑找这两个位置的性质。

感性理解的话,我们在这两个位置中只能填类似 ARCRARCR 的字符串,而在这种构造时,这个字符串长度只能是 \(2\) 的倍数,即当这两个位置时 \(i,j(i<j)\) 时,我们需要有 \(j-i-1\) 为偶数。直接判断即可。

arc192b

首先暴力 SG 显然不可取,所以先考虑两人的决策。

如果某个人选了位置 \(i\),且这个位置第一次被选,那么有两种情况:

  • 目前的情况先手必胜,则先手会维持这个位置不选。
  • 否则,我们可以继续选这个位置,可以证明选完之后同样是先手必败,综合起来就是将 \(a_i\gets a_i-2\)

第一种情况我们无需考虑,而第二种情况中,我们会一直执行上面的操作,直到 \(a_i<2\)

也就是说,我们不需要考虑 \(a_i\) 的大小,只需要考虑 \(a_i\) 的奇偶性即可。

这时候不难写出一个 DFS 打表。可以发现打出来的表很有规律,所以我们按照这个规律输出即可。

arc188a

差点不会之前我认为的简单题。

显然,一个子串是合法的当且仅当这个字符串中 ABC 的出现次数奇偶性相同。

思路类似 dp of dp。首先考虑判断一个串是否有 \(\ge k\) 个满足要求的子串。可以用前缀和求出。

接下来对于前缀和 DP。由于我们前缀和的大小只有 \(2^3=8\),所以我们可以直接对于这个东西用类似状压的方法。时间复杂度为 \(O(n^8)\),不可接受。

接下来考虑压缩状态。由于我们求的是前缀和做差之后的奇偶性相同,所以不难优化至 \(O(n^{2^3\div 2})=O(n^4)\)

arc181a

题目中的操作显然是没有什么性质的,所以考虑答案是否有性质。

手玩之后可以发现答案 \(\le 3\),于是简单分讨即可。

posted @ 2025-02-25 21:56  linxuanrui  阅读(27)  评论(0)    收藏  举报