题目背景
终于打过春二心门的 ac 来到了春三,并决定预测一下残暴圣所(Ferocious Sanctuary)的难度。

题目描述
为了通关残暴圣所,ac 需要在接下来的 个时刻进行 次操作。第 次操作需要在时刻 按下某个按键,此后一直按住这个按键,直到时刻 松开它()。在每个时刻,ac 要么按下一个按键,要么松开一个按键,但是可以同时按住多个按键。
第 次操作形成了一个操作区间 ,满足 严格递增。并且,由于残暴圣所的关卡设计,任意两个操作形成的操作区间之间,要么不交,要么包含。
ac 设计了 个难度系数 。第 次操作的难度可以用 来评估,而通关残暴圣所的难度即为所有操作的难度之和。
然而,由于 ac 卡在了残暴圣所的第一面,所以他并不知道每个操作的操作区间。在给定 和 的前提下,请你计算对于所有可能的情况,通关残暴圣所的难度之和,对 取模。
形式化题意
给定一个长为 的数列 。
定义“区间组”由 个区间组成,第 个区间为 ,求所有满足下列条件的区间组的 之和对 取模:
- 是 的一个排列。
- ,。
- , 或 或 。
输入格式
第一行一个整数 ,表示区间数。
第二行 个整数 ,含义如上所述。
输出格式
一行一个整数,表示答案对 取模的值。
输入输出样例 #1
输入 #1
输出 #1
输入输出样例 #2
输入 #2
输出 #2
输入输出样例 #3
输入 #3
1 2
| 8 275272885 418731188 289662326 114331587 192436268 885936831 877490593 508774565 633402863 149033362 995239139 494498006 168828873 138947653 983144753 844326228
|
输出 #3
说明/提示
样例说明
对于样例 1,可能的两个操作区间只有两种情况:
- ,通关难度为 。
- ,通关难度为 。
难度之和为 ,对 取模后仍为 。
以下几种情况是不合法的:
- ,因为要求 严格递增,而 。
- ,因为要求 ,而 。
- ,因为要求在每个时刻,要么按下一个按键,要么松开一个按键,而第三个时刻松开了两个按键,第四个时刻没有按下或松开任何一个按键。
- ,因为要求任意两个操作区间不交或包含,而这两个区间之间有交,并且没有包含关系。
数据范围
对于 的数据,。
对于 的数据,。
对于 的数据,。
对于另 的数据,。
对于 的数据,,。
题解
题面中对区间的各种限制,本质上就是合法括号序列。本题等价于求出所有括号序列中每对括号的权值之和。
对于括号 ,显然只有 为偶数的括号内才能出现合法的序列。考虑这对括号会在多少种括号序列中做贡献,方案数为括号内的方案数乘以序列删除区间 后的方案数。
设 为卡特兰数的第 项,那么括号 的贡献次数为 。
考虑到 必然为偶数,因此简单的方式是只枚举长度为偶数的括号 或 。我们可以得到以下式子,其中约定 。
构造多项式
则原式可转化为:
一次卷积即可。