编程介的小学生 2019-05-14 21:32 采纳率: 20.5%
浏览 203

按照li升序输出多项式,怎么采用C程序的语言代码编写的程序的结果来实现?

Problem Description
光羽的高等代数挂科了,度度熊非常难受,于是带劲出了一道高代水题来安慰他!

定义模域P下的d次多项式A(x)=∑di=0aixi,其中ai是整数且0≤ai<P。其中P=998244353。

定义模域P下n次多项式A(x)和m次多项式B(x)的乘法为:
A(x)B(x)=∑n+ms=0(∑i+j=saibj)%P×xs
其中%P表示对质数P取模。

给出模域P下多项式f(x)=∑ni=0aixi,(0≤ai<P)。

这个多项式很**带劲**,它**保证**可以表示成这样:
f(x)=(x−λ1)l1(x−λ2)l2..(x−λm)lm.
(因为数据就是这么造的。)

其中0≤λi<P且λi两两不同,同时满足l1<l2<..<lm且∑mi=1li=n。注意此处乘法为之前定义的模域下乘法。

给出n和n+1个数a0,a1,..,an,求出λ1,λ2,...,λm和l1,l2,...,lm。

由唯一分解定理知答案唯一。

Input
第一行一个数,表示数据组数T。

每组数据第一行仅包含一个数n;第二行n+1个数,分别为a0,a1,...,an。

数据组数T=100,1≤n≤2000。
其中90%的数据满足1≤n≤200。

Output
每组数据输出m+1行,第一行仅包含一个数表示m,接下来m行,每行两个数λi,li,**要求按照li升序输出。**

Sample Input
3
5
998241761 3024 998243057 264 998244327 1
5
0 0 0 64 998244337 1
5
998233985 8208 998241761 408 998244321 1

Sample Output
2
2 1
6 4
2
8 2
0 3
2
8 1
6 4

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!