A. 递推序列的模值查询

递推序列的模值查询

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

有一个整数序列 x0,x1,x2,…x_0, x_1, x_2, \dots,其中 x0=1 mod Mx_0 = 1 \bmod M, x1=1 mod Mx_1 = 1 \bmod M,且对于所有 i≥0i \ge 0,满足 xi+2=(A⋅xi+1+B⋅xi) mod Mx_{i+2} = (A \cdot x_{i+1} + B \cdot x_i) \bmod M。

给定系数 A,BA, B 和模数 MM,以及若干询问,请你对每个询问输出对应位置的序列值。

保证 1≤A,B,M≤1081 \le A, B, M \le 10^8,询问次数 qq 满足 1≤q≤500001 \le q \le 50000,每次询问的下标 kk 满足 1≤k≤500001 \le k \le 50000。

输入描述

第一行包含三个整数 A,B,MA, B, M。 第二行包含一个整数 qq,表示询问次数。 第三行包含 qq 个整数 k1,k2,…,kqk_1, k_2, \dots, k_q,表示需要查询的下标。

输出描述

输出一行,包含 qq 个整数,用空格分隔,依次表示每个询问的答案。

样例1

输入

3 2 7
5
1 2 3 4 5

输出

1 5 3 5 0

说明

序列初始值为 x0=1,x1=1x_0 = 1, x_1 = 1。给定 c1=3,c2=2,p=7c_1 = 3, c_2 = 2, p = 7。 递推计算:

  • x2=(3×1+2×1) mod 7=5x_2 = (3 \times 1 + 2 \times 1) \bmod 7 = 5
  • x3=(3×5+2×1) mod 7=17 mod 7=3x_3 = (3 \times 5 + 2 \times 1) \bmod 7 = 17 \bmod 7 = 3
  • x4=(3×3+2×5) mod 7=19 mod 7=5x_4 = (3 \times 3 + 2 \times 5) \bmod 7 = 19 \bmod 7 = 5
  • x5=(3×5+2×3) mod 7=21 mod 7=0x_5 = (3 \times 5 + 2 \times 3) \bmod 7 = 21 \bmod 7 = 0 因此对于查询下标 1, 2, 3, 4, 5,依次输出 1, 5, 3, 5, 0。

样例2

输入

1 1 10
6
1 2 3 4 5 6

输出

1 2 3 5 8 3

说明

该组参数下递推式变为 xi+2=(xi+1+xi) mod 10x_{i+2} = (x_{i+1} + x_i) \bmod 10,即斐波那契数列模 1010。 x0=1,x1=1x_0 = 1, x_1 = 1;

  • x2=(1+1) mod 10=2x_2 = (1 + 1) \bmod 10 = 2
  • x3=(2+1) mod 10=3x_3 = (2 + 1) \bmod 10 = 3
  • x4=(3+2) mod 10=5x_4 = (3 + 2) \bmod 10 = 5
  • x5=(5+3) mod 10=8x_5 = (5 + 3) \bmod 10 = 8
  • x6=(8+5) mod 10=3x_6 = (8 + 5) \bmod 10 = 3 查询下标 1 到 6 对应上述值,输出 1 2 3 5 8 3。

样例3

输入

1 1 10
3
10 20 50000

输出

9 6 6

说明

同样是 xi+2=(xi+1+xi) mod 10x_{i+2} = (x_{i+1} + x_i) \bmod 10。前几项为 1,1,2,3,5,8,3,1,4,5,91, 1, 2, 3, 5, 8, 3, 1, 4, 5, 9(x0x_0 到 x10x_{10}),因此 x10=9x_{10} = 9。 继续递推可得 x20=6x_{20} = 6。模 1010 下该序列的周期为 6060,而 50000≡20(mod60)50000 \equiv 20 \pmod{60},故 x50000=x20=6x_{50000} = x_{20} = 6。 即使 kk 达到 5000050000,也能通过递推或周期性得到结果。输出 9 6 6。

秋招模拟赛第二十三场|小红书|2023.05.07

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-5-30 19:00
End at
2023-5-30 20:00
Duration
1 hour(s)
Host
Partic.
28