CF1065E Side Transmutations 题解
题面
考虑一个字符集合\(A\)(\(A\)中元素互不相同)和一个长度为\(n\)的字符串\(S\),其中\(S\)中的字符都属于集合\(A\)。
给你一个包含 \(m\) 个整数的序列 \(b\) (\(b_1\le b_2\le\dots\le b_m\))。你可以对字符串 \(S\) 作以下的操作:
1.选择一个合法的 \(i\) ,并且令 \(k=b_i\) ;
2.取出 \(S\) 中前 \(k\) 个字符 \(Pr_k\) ;
3.取出 \(S\) 中后 \(k\) 个字符\(Su_k\) ;
4.将 \(S\) 中前 \(k\) 个字符替换成翻转后的 \(Su_k\) ;
5.将 \(S\) 中后 \(k\) 个字符替换成翻转后的 \(Pr_k\) ;
这个操作可以被执行许多次(可能是零次),任何一个 \(i\) 也可以被使用多次。
我们将字符串 \(S\) 和 \(T\) 称为相等的字符串,当且仅当存在一个操作序列,将字符串 \(S\) 变成 \(T\)。注意到 \(S\) 和它自己也是相等的。
你的任务很简单,数出互不相同的字符串的个数 \(\mod998244353\) 的结果。
题解
组合法
首先发现,\((b_{i-1},b_i]\) 这些段可以相互独立地与左边对应区间去交换,所以贡献独立
考虑其中一个长度为 \(len\) 的区间
若两边对称,方案数为 \(|A|^{len}\)
若两边不对称,方案数为 \(\frac{|A|^{len}\times (|A|^{len}-1)}{2}\)
对于中间没法变换到的自然随便选,贡献为 \(|A|^{n-2\cdot b_m}\)
Ploya
先咕着,以后填