P16125 [USTCPC 2026] Melody
题目背景
坂井和奏想要完成当年和母亲没有写完的歌。她找到了不完整的旋律,想将它谱成一首优美和谐的乐曲。
题目描述
一段旋律的长度为 $n$,由 $k$ 种不同音符组成,即每个音符 $a_1,\dots,a_n$ 均为 $1$ 到 $k$ 中的一个整数。$k$ 种音符构成了一个**平均律**,相邻两个音符 $a_i,a_{i+1}$ 之间会构成一个大小为 $(a_{i+1}-a_i)\bmod k$ 的**进行**。
和奏有一个进行的和谐度表 $h_0,\dots,h_{k-1}$,表示大小为 $i$ 的进行的**和谐度**为 $h_i$。
她认为在一段旋律中,相同大小的进行反复出现时,其和谐度是幂次级叠加的,即若一段旋律中有 $c_i$ 个大小为 $i$ 的进行,则它们总的和谐度为 $h_i^{c_i}$。特别地,她认为 $0^0=1$。
她认为旋律中不同大小的进行之间和谐度是简单叠加的,即整段旋律的和谐度为 $\sum_{i=0}^{k-1}h_i^{c_i}$。
现在她找到了那份不完整的旋律,其中有 $m$ 个音符已经确定,分别为 $a_{x_i}=y_i$。和奏想请你求出,如果她可以任意选择其余 $n-m$ 个音符,得到的 $k^{n-m}$ 种不同旋律的和谐度之和是多少。由于答案可能很大,你只需要帮她求出其对 $20120923$ 取模的值。
输入格式
**本题有多组测试数据。**
首先输入一行,包含一个整数 $T$($1\le T\le 10^5$),表示测试数据组数。
每组数据首先输入一行,包含三个整数,表示旋律长度 $n$($1\le n\le 10^9$),已确定音符数 $m$($0\le m\le 10^6$)和音符种类数 $k$($1\le k\le 10^6$)。
接下来输入一行,包含一个长度为 $k$ 的数组,依次表示 $h_0,\dots,h_{k-1}$。保证 $0\le h_i
输出格式
输出 $T$ 行,每行一个整数,表示答案取模 $20120923$ 后的结果。
说明/提示
对于第二组数据,一种可能的完整旋律为:$[5,1,1,2,3,5,5,6,1,7,1,2,3]$,其中 $c_0=2,c_1=6,c_2=2,c_3=1,c_4=c_5=0,c_6=1$,因此其和谐度为 $1^2+2^6+2^2+2^1+0^0+1^0+0^1=73$。