ARC170

唉,真不会博弈论啊 /ll /ll

开题先看 A。

给你只包含 \(\texttt{A}\)\(\texttt{B}\) 的字符串 \(s,t(1 \le |s| \le 10^5)\),一次操作可以选择 \(i,j(i < j)\) 并令 \(s_i \gets \texttt{A},s_j \gets \texttt{B}\),问使 \(s,t\) 相等的最少操作次数,或判断无解。

这题看着就很简单是不是!胡了个结论:如果 \(s\) 的开始或结尾字符不合法就无解,否则是 \(s_i = \texttt{A},t_i = \texttt{B}\)\(i\) 的数量和 \(s_j = \texttt{B},t_j = \texttt{A}\)\(j\) 的数量的较大值。样例过了!提交完发现一直 WJ 就看 B 去了。

求序列 \(a(1 \le a_i \le 10,1 \le n \le 10^5)\) 有多少子区间 \([l,r]\) 满足存在 \(i,j,k(l \le i < j < k \le r)\),使得 \(a_i - a_j = a_j - a_k\)

\(a_i \le 10\),又一道大水题!枚举 \(j\)\(a_i\) 的值,\(a_k\) 的值可以算出,那么找到大于 \(j\) 的第一个 \(a_k\) 和小于 \(j\) 的第一个 \(a_i\),则 \(l \in [1,i],r \in [k,n]\) 的区间全都合法。区间推平全局求和,但是观察到推平的区间是 \(l\) 的前缀 \(r\) 的后缀,用数组维护即可。\(16\) 分钟的时候写完交上去,过了。

然后发现刚才提交的 A 没过,WA /cf

仔细一想可能存在不完全匹配的情况,用两个 vector 搞了搞,但还是 WA。发现无解漏了一种情况,\(30\) 分钟的时候两发罚时过了这题。

看 C。

给定序列 \(s(1 \le n \le 5000)\)\(m(0 \le m \le 10^9)\),问有多少个序列 \(a\) 满足 \(0 \le a_i \le m\) 且,若 \(s_i = 1\)\(a_i = \operatorname{mex}(a_1,a_2,\ldots,a_{i-1})\);否则 \(a_i \ne \operatorname{mex}(a_1,a_2,\ldots,a_{i-1})\)

想了一段时间,发现 \(m > n\) 的时候答案就是 \(m^c\),其中 \(c\)\(0\) 的个数。然后发现输出这个样例就全过了,难道这个是正解?WA,【】出题人。

考虑 dp。设 \(f_{i,j}\) 表示考虑前 \(i\) 个元素,已经填了 \(j\) 个不同的数字的方案数量。如果这个位置是 \(1\),一定要填第一个没出现的数字,\(f_{i,j} = f_{i-1,j-1}\)。否则,既可以填填过的,也可以填除 \(\operatorname{mex}\) 外没出现过的,\(f_{i,j} = jf_{i-1,j} + (m - j + 1)f_{i-1,j-1}\)。答案是 \(\sum \limits_{i=0}^{m+1}f_{n,j}\)\(87\) 分钟时过了。

D 是博弈论。想了一段时间不怎么会,就扔了。

E 是期望,\(10\) 级算法,不会,扔了。

F 神秘题,也不会。

ARC 只会 ABC /kel /kel /kel

posted @ 2024-01-21 21:46  sunkuangzheng  阅读(54)  评论(1编辑  收藏  举报