CF963A Alternating Sum

题目描述

给定两个整数 $a$ 和 $b$,以及一个序列 $s_0, s_1, \dots, s_n$。序列 $s$ 中的所有值均为 $1$ 或 $-1$。已知该序列是 $k$ 周期的,并且 $k$ 能整除 $n+1$。换句话说,对于每个 $k \leq i \leq n$,都有 $s_i = s_{i - k}$。 请你计算 $\sum\limits_{i=0}^{n} s_i a^{n-i} b^i$ 除以 $10^9 + 9$ 的非负余数。 注意,这里的模数是 $10^9 + 9$,与常见的模数不同!

输入格式

第一行包含四个整数 $n, a, b, k$,满足 $1 \leq n \leq 10^9, 1 \leq a, b \leq 10^9, 1 \leq k \leq 10^5$。 第二行包含一个长度为 $k$ 的仅由字符 '+' 和 '-' 组成的字符串。 如果第 $i$ 个字符(从 $0$ 开始计数)是 '+',则 $s_i = 1$,否则 $s_i = -1$。 注意,只给出了序列的前 $k$ 项,其余项可根据周期性性质得到。

输出格式

输出一个整数,表示所给表达式对 $10^9 + 9$ 取模后的值。

说明/提示

在第一个样例中: $\sum\limits_{i=0}^{n} s_i a^{n-i} b^i = 2^2 3^0 - 2^1 3^1 + 2^0 3^2 = 7$。 在第二个样例中: $\sum\limits_{i=0}^{n} s_i a^{n-i} b^i = -1^4 5^0 - 1^3 5^1 - 1^2 5^2 - 1^1 5^3 - 1^0 5^4 = -781 \equiv 999999228 \pmod{10^9 + 9}$。 由 ChatGPT 4.1 翻译