计数题目选做

AT_agc040_c Neither AB nor BA

题目大意:

一个由 \(ABC\) 构成的串是好的,当且仅当可以通过不删 \(AB\)\(BA\) 的相邻的两个字符把它删空。
现在给定 \(n\),求长度为 \(n\) 的字符串有多少是好的。
\(n \le 10^7,2 | n\)

解题思路:

首先注意到 \(C\) 这个字符是没有施加任何限制的,所以可以看成任意填 \(A/B\)
那么现在变成了如何判定一个 \(AB\) 串是否合法。
因为 \(AA\)\(BB\) 形的 删除可能导致了 \(ABABABABAB\) 这种数量很多但不能删的情况。
也就是这样刻画会非常复杂。

但注意到因为是一次删两个,所以奇偶性永远不会变。
这样我们就找到了永恒的东西。

然后套套路,将偶数位置的 \(A/B\) 切换,那么一次就是删一个 \(AB/BA\) 了。
这样就很好了啊,因为只要 \(A,B\) 同时有,就一定会相交。

相交就意味着一定可以删除。
所以现在的问题就变为了 \(AB\) 不能有绝对众数,\(C\) 这时候就是用来平衡的了。

因为不能有绝对众数,而绝对众数只能有一个,所以简单容斥一下就好了。
\(O(n)\)

AT_agc020_f Arcs on a Circle

题目大意:

你有 \(n\) 个线段,每个线段长度给定,现在在一个环上,每个线段的初始坐标在实数范围内随机,求覆盖整个环的概率。
\(n \le 6, L \le 50\)

解题思路:

遇到小数部分,直接套路地枚举大小关系,然后这个题直接状压就行了。
\(O(2^n \times n! \times n^2 \times L^2)\)

AT_agc019_f Yes or No

题目大意:

已知一套试卷中有 \(N\) 个选 \(A\)\(M\) 个选 \(B\),你知道,需要逐一蒙 \(N+M\) 个题,而且你每蒙完一个就会给出这个题的答案。
而且答案在一开始就随机定了,问你期望答对多少题。
\(N,M \le 5 \times 10^5\)

解题思路:

首先我们肯定是要知道我们要怎么填这个答案,策略显然是填剩下多的那个。
于是我们就有一个网格图,往左走表示选 \(Yes\),往右走表示选 \(No\),由于 \(N,M\) 是对称的,所以不妨设 \(N > M\)
所以我们的最优策略就会如下图红线一样(蓝线代表斜对角)

我们现在就是要求的每一条路径于红线交的期望数量。
考虑这个折线中横着的太难看了,而把他们去掉之后正好是一层一层的。
所以就是单独算这些的贡献然后加 \(N\)
\(O(n)\)

posted @ 2026-02-13 11:37  positive_deviation  阅读(1)  评论(0)    收藏  举报