luogu#P6728. [COCI2015-2016#5] PODNIZOVI

[COCI2015-2016#5] PODNIZOVI

题目描述

给定一个长度为 NN 的数组 a1,a2,,aNa_1,a_2,\dots,a_N。令 s1,s2,,sqs_1,s_2,\dots,s_q 为这个数组所有的非空子序列,且 q=2n1q=2^n-1

关于字典序:如果两个数组 AABB 的第一个不相同的位置为 ii,且 Ai<BiA_i<B_i;或 AABB 的严格前缀(即不能相等),则 AA 的字典序小于 BB

我们将由 v1,v2,,vpv_1,v_2,\dots,v_p 组成的数组的 hash 值定义为:

$$h(s)=(v_1\times B^{p-1}+v_2\times B^{p-2}+\dots +v_{p-1}\times B+v_p) \bmod M $$

其中 B,MB,M 是给定的整数。

对于给定的整数 KK,求 h(s1),h(s2),,h(sK)h(s_1),h(s_2),\dots,h(s_K) 的值。

输入格式

第一行四个整数 N,K,B,MN,K,B,M

第二行 NN 个整数 a1,a2,,aNa_1,a_2,\dots,a_N

输出格式

输出共 KK 行,第 ii 行为 h(si)h(s_i) 的值。

2 3 1 5
1 2
1
3
2
3 4 2 3
1 3 1
1
1
0
2
5 6 23 1000
1 2 4 2 3
1
25
25
577
274
578

提示

样例解释

样例 11

s1=[1],s2=[1,2],s3=[2]s_1 = [1], s_2 = [1, 2], s_3 = [2]

$h(s_1) = 1 \bmod 5 = 1, h(s_2) =(1 + 2) \bmod 5 = 3, h(s_3) = 2 \bmod 5 = 2$。

样例 22

s1=[1],s2=[1],s3=[1,1],s4=[1,3]s_1 = [1], s_2 = [1], s_3 = [1, 1], s_4 = [1, 3]

$h(s1) = 1 \bmod 3 = 1,h(s_2) = 1 \bmod 3 = 1, h(s_3) = (1 \times 2 + 1) \bmod 3 = 0, h(s_4) = (1 \times 2 + 3) \bmod 3 = 2$。

数据规模与约定

对于 60%60\% 的数据,1ai301\le a_i\le 30
对于 100%100\% 的数据,1N,K,ai1051\le N,K,a_i\le 10^51B,M1061\le B,M\le 10^6K2N1K\le 2^N-1

说明

题目译自 COCI2015-2016 CONTEST #5 T6 PODNIZOVI