蒟蒻初学OI,被一个问题难住了…

P4245 【模板】任意模数多项式乘法

_兰_ @ 2019-02-19 18:15:44

众所周知拆系数FFT的M取\sqrt P时复杂度最优……

所以我一开始想抖个机灵,每次的M依照输入的P求,即

这份代码

可是他只有50分……我怀疑是精度问题……

然后只有我把M变成这份代码里的32767,他才A掉……

所以为什么不同的M会产生如此大精度误差呢?


by _兰_ @ 2019-02-19 18:18:38

……如果看不了代码的话大概就是

50:

cin >> L1 >> L2 >> P, M = sqrt(M) + 1 ; N = 1 ;

100:

rr int i, t ; cin >> L1 >> L2 >> P, M = 32767 ; N = 1, t = L1 + L2 ;

by _兰_ @ 2019-02-19 18:20:10

没有大佬愿意帮助萌新吗(,,•́ . •̀,,)


by Anvet @ 2019-02-19 18:23:31

萌新居然会FFT


by _兰_ @ 2019-02-19 18:28:58

哇帖子不要沉啊QAQ


by 一叶知秋。 @ 2019-02-19 18:29:02

初学OI都是怪物系列


by 一叶知秋。 @ 2019-02-19 18:29:56

像我这个萌新只能问什么网络流,数论(蒻啊~)


by _兰_ @ 2019-02-19 18:33:57

没有人来帮我这个sb?QAQ


by YZhe @ 2019-02-19 18:42:25

您是初学,那我估计才出生


by _兰_ @ 2019-02-19 22:21:38

咳,更新一下,刚才那份50pts的代码,M = sqrt(P) + 1被我写成了M = sqrt(M) + 1……所以这就相当于直接FFT……

但是我改完之后,还是只有70pts,详情请见这份代码

请问是什么原因导致的精度误差这么大呢?


|