CF575A Fibonotci

题目描述

Fibonotci 数列是一个递归整数数列,其递推关系为: $$ F_{n} = s_{n-1} \cdot F_{n-1} + s_{n-2} \cdot F_{n-2} $$ 其中 $F_{0} = 0, F_{1} = 1$。数列 $s$ 是一个无限且“几乎循环”的数列,其循环节长度为 $N$。“几乎循环”数列的定义是:对于 $i \geq N$,除了有限个 $s_{i}$ 外,都有 $s_{i} = s_{i\,\bmod\,N}$。 下面是一个循环节长度为 $4$ 的“几乎循环”数列例子: $$ s = (5, 3, 8, 11, 5, 3, 7, 11, 5, 3, 8, 11, \ldots) $$ 注意,只有 $s_{6}$ 的数值与 $s_{2}$ 不同($s_{6} = 7$,$s_{2} = 8$)。 现在已知 $s_{0}, s_{1}, \ldots, s_{N-1}$ 以及所有 $i \geq N$ 且 $s_{i} \neq s_{i \bmod N}$ 的 $s_{i}$ 的取值。 请计算 $F_{K} \bmod P$。

输入格式

第一行包含两个整数 $K$ 和 $P$。 第二行包含一个整数 $N$。 第三行包含 $N$ 个用空格隔开的整数,表示数列 $s$ 的前 $N$ 项。 第四行包含一个整数 $M$,表示满足 $s_{j} \neq s_{j \bmod N}$ 的 $s_{j}$ 的个数。 接下来 $M$ 行,每行包含两个整数 $j$ 和 $v$,表示 $s_{j} = v$ 且 $s_{j} \neq s_{j \bmod N}$。所有 $j$ 均不相同。 - $1 \le N, M \le 50000$ - $0 \le K \le 10^{18}$ - $1 \le P \le 10^{9}$ - $1 \le s_{i} \le 10^{9}$,$i = 0,1,\ldots,N-1$ - $N \le j \le 10^{18}$ - $1 \le v \le 10^{9}$ - 所有数值均为整数。

输出格式

输出一个整数,等于 $F_K \bmod P$。

说明/提示

由 ChatGPT 5 翻译