#luoguP9055. [集训队互测 2021] 数列重排
[集训队互测 2021] 数列重排
本题没有可用的提交语言。
题目背景
dottle bot。
题目描述
定义一个数列区间的 为区间中最小的没有出现过的自然数,定义一个数列的价值为其中 的区间数量。
给定 个小于 的自然数和一个区间 ,令 表示 个数构成的数列所有重排列中数列价值的最大值,对于每一个 ,求出 。
令 表示数字 出现的次数,保证存在正整数 ,使得 。
输入格式
由于 可能很大,将采取如下方式减少读入量:
第一行四个整数 。
第二行一个长度为 的 串,若其中第 个位置为 则数字 的出现次数为 ,否则出现次数为 。
根据输入可以推出 ,其中 为 串中 的数量。
输出格式
为了减少输出量,令 ,其中 表示二进制下的按位异或,输出一行一个整数 。
2 0 1 2
10
3034
14 1 14 13
10110101110101
379883349
提示
样例 1 解释
在样例给出的数列中,有 个 和 个 ,任意排列 均为 ,排列为 时 有最大值 ,答案为:
$$\displaystyle (233^0\times 15\bmod 998244353)\oplus(233^1\times 13\bmod 998244353)=3034 $$数据范围
- Subtask 1(5 points):。
- Subtask 2(15 points):。
- Subtask 3(15 points):。
- Subtask 4(5 points):,,。
- Subtask 5(10 points):,,。
- Subtask 6(10 points):,,。
- Subtask 7(15 points):,。
- Subtask 8(15 points):。
- Subtask 9(10 points):无特殊限制。
对于所有数据,满足 ,,,。