#P12771. [POI 2018 R3] 多项式 Polynomial

    ID: 12549 Type: RemoteJudge 4000ms 128MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2018POI(波兰)Special Judge快速数论变换 NTT

[POI 2018 R3] 多项式 Polynomial

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXV Olimpiada Informatyczna — III etap Wielomian

Bajtazar 在数学课上行为不端,作为惩罚,他需计算一个具有 nn 个整数系数的长多项式 WW

$$W(x) = a_0 + a_1 x + a_2 x^2 + \ldots + a_{n-2} x^{n-2} + a_{n-1} x^{n-1} $$

在点 q1,q2,,qnq^1, q^2, \ldots, q^n 处的取值。为便于老师检查,他需先给出这些取值之和除以 mm 的余数,再给出各取值除以 mm 的余数。

Bajtazar 不仅调皮,还很懒惰,他请你帮忙,自己却跑去派对了。临走前,他提醒你:nn22 的幂,且 qnq^n 除以 mm 的余数为 11(即 qnmodm=1q^n \bmod m = 1)。他认为这些性质可大幅减少计算量。

输入格式

第一行包含三个整数 n,m,qn, m, qn1n \geq 1nn22 的幂,2m1092 \leq m \leq 10^91q<m1 \leq q < mqnmodm=1q^n \bmod m = 1)。

第二行包含 nn 个整数 a0,a1,,an1a_0, a_1, \ldots, a_{n-1} (0ai109)(0 \leq a_i \leq 10^9),表示多项式系数。

输出格式

第一行输出一个整数,表示多项式 WW 在点 q1,q2,,qnq^1, q^2, \ldots, q^n 的取值之和除以 mm 的余数。

第二行输出 nn 个整数,表示 W(q1),W(q2),,W(qn)W(q^1), W(q^2), \ldots, W(q^n) 除以 mm 的余数,空格分隔。

4 13 5
3 2 2 1
12
6 2 9 8

提示

样例 1 解释

多项式为 W(x)=3+2x+2x2+x3W(x) = 3 + 2x + 2x^2 + x^3,其在各点取值为 W(5)=188W(5) = 188W(52)=16928W(5^2) = 16928W(53)=1984628W(5^3) = 1984628W(54)=244923128W(5^4) = 244923128。第一行输出 188+16928+1984628+244923128=246924872188 + 16928 + 1984628 + 244923128 = 246924872 除以 1313 的余数,即 1212。第二行输出各取值除以 1313 的余数:188mod13=6188 \bmod 13 = 616928mod13=216928 \bmod 13 = 21984628mod13=91984628 \bmod 13 = 9244923128mod13=8244923128 \bmod 13 = 8

附加样例

  1. n=8,m=10,q=3n=8, m=10, q=3
  2. n=256,m=10,q=9n=256, m=10, q=9
  3. n=213,m=17,q=6n=2^{13}, m=17, q=6
  4. n=220,m=1114129,q=2n=2^{20}, m=1114129, q=2

若和正确但某取值错误,程序可获得 40%40\% 的分数,且第二行需输出 nn[0,m1][0, m-1] 范围的数。

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n210n \leq 2^{10} 1717
22 n215n \leq 2^{15} 99
33 n220n \leq 2^{20} 7474