|
||||||||||
带劲的多项式Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 43 Accepted Submission(s): 16 Problem Description 光羽的高等代数挂科了,度度熊非常难受,于是带劲出了一道高代水题来安慰他! 定义模域$P$下的$d$次多项式$A(x)=\sum_{i=0}^{d} a_i x^i$,其中$a_i$是整数且$0 \le a_i < P$。其中$P=998244353$。 定义模域$P$下$n$次多项式$A(x)$和$m$次多项式$B(x)$的乘法为: $A(x)B(x)= \sum_{s=0}^{n+m} (\sum_{i+j=s} a_i b_j) \% P \times x^s$ 其中$\% P$表示对质数P取模。 给出模域P下多项式$f(x)= \sum_{i=0}^{n} a_i x^i$,$(0 \le a_i < P)$。 这个多项式很**带劲**,它**保证**可以表示成这样: $f(x)= (x - \lambda_1)^{l_1}(x - \lambda_2)^{l_2}..(x - \lambda_m)^{l_m}.$ (因为数据就是这么造的。) 其中$0 \le \lambda_i < P$且$\lambda_i$两两不同,同时满足$l_1 < l_2 < .. < l_m$且$\sum_{i=1}^{m} l_i = n$。注意此处乘法为之前定义的模域下乘法。 给出n和n+1个数$a_0,a_1,..,a_n$,求出$\lambda_1,\lambda_2,...,\lambda_m$和$l_1,l_2,...,l_m$。 **由唯一分解定理知答案唯一。** Input 第一行一个数,表示数据组数$T$。 每组数据第一行仅包含一个数$n$;第二行$n+1$个数,分别为$a_0,a_1,...,a_n$。 数据组数T=100,$1 \le n \le 2000$。 其中90%的数据满足$1 \le n \le 200$。 Output 每组数据输出$m+1$行,第一行仅包含一个数表示$m$,接下来m行,每行两个数$\lambda_i,l_i$,**要求按照$l_i$升序输出。** Sample Input
Sample Output
Source | ||||||||||
|