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

先咕着,以后填

posted @ 2022-01-26 08:31  Lumos壹玖贰壹  阅读(25)  评论(0编辑  收藏  举报