#P12471. [2025年福建省队集训]沙湾
[2025年福建省队集训]沙湾
题目描述
你手上有 个石子,有 个普通的石子和 个特殊的石子。
这 个石子共有 种颜色,其中 个特殊的石子的颜色为 ,其余石子的颜色为 中的一种。
已知第 种颜色的石子有 个,保证 。
你将这些石子摆成一行,你决定观察你摆的石子的美观度。
为了方便观察,美观度由最左边和最右边的石子决定,具体如下:
-
找到最左边的特殊的石子,记其为从左到右的第 个石子。
-
考虑最右边的石子,如果是普通石子,则找到这个石子左边第一个颜色不同的石子(可以是特殊石子),记其右边的石子数为 。
例如,有 个石子,从左到右颜色依次为 ,其中颜色 为普通石子,颜色 为特殊石子。
最左边的特殊石子是从左到右第 个石子,所以 。
最右边的石子颜色是 ,是一个普通石子,左边第一个颜色不同的石子是从左到右第 个石子,它的右边有 个石子,所以 。
序列的美观度定义如下:
- 如果最右边的石子是特殊的石子,则美观度为 。
- 否则,记最右边的石子颜色为 ,则美观度为 。
其中 和 由题目给定。
现在你想知道,所有不同的石子序列,美观度之和是多少?
两个序列不同当且仅当至少有一个位置的石子颜色不同,答案对 取模。
输入格式
从文件 sand.in
中读入。
第一行 个数,表示 。
第二行 个数,表示 。
第三行 个数,表示每种颜色的石子个数。
接下来 行,第 行 个数,表示 。
输出格式
输出到文件 sand.out
中。
输出一行一个整数,表示所有不同的石子序列的美观度之和对 取模的结果。
样例
样例输入 1
2 1 1
2 3 4
2
2 3
样例输出 1
16
样例解释 1
共有 种可能序列。
,,最右边是特殊石子,美观度为 。
,,美观度为 。
,,美观度为 。
总和为 。
样例输入 2
8 2 6
923945407 493986782 501032365 554208540 820758204 352305609 320140120 118497648 467798137
3 1 1 1 1 1
297408812 522217066 885036796
441963214
132614765
507229015
950047419
634968424
样例输出 2
734049932
样例 3
见选手目录下的 sand/sand3.in
与 sand/sand3.ans
。
这个样例满足测试点 的约束条件。
样例 4
见选手目录下的 sand/sand4.in
与 sand/sand4.ans
。
这个样例满足测试点 的约束条件。
样例 5
见选手目录下的 sand/sand5.in
与 sand/sand5.ans
。
这个样例满足测试点 的约束条件。
样例 6
见选手目录下的 sand/sand6.in
与 sand/sand6.ans
。
这个样例满足测试点 的约束条件。
样例 7
见选手目录下的 sand/sand7.in
与 sand/sand7.ans
。
这个样例满足测试点 的约束条件。
数据范围
对于 的数据,,,,,。
测试点编号 | 特殊限制 | ||
---|---|---|---|
无 | |||
无 | |||
保证 | |||
保证 | |||
保证 | |||
无 | |||