2179: FFT快速傅立叶 - #include <Seter> - using namespace Orz;

2179: FFT快速傅立叶

Seter posted @ 2011年11月22日 19:30 in BZOJ with tags HighPrecision NumberTheory Divide , 3270 阅读

http://www.zybbs.org/JudgeOnline/problem.php?id=2179

RunID User Problem Result Memory Time Language Code Length Submit Time
175346 Seter 2179 Accepted 1756 kb 1120 ms C/Edit 1597 B 2011-11-22 19:17:39

于是花了3个小时写了个分治版的大数乘法……压9位后常数果然巨小,60000位时比FFT还快一点!膜拜AC大神208MS稳居榜首!

用FFT过掉后看到TIM是用分治的……于是回去想了好久……终于想出来了……

多项式(Ax+B)(Cx+D)=ACxx+BD+(ADx+BCx)=ACxx+BD+[(A+B)(C+D)-AC-BD]x

令x=10^(n/2),于是每次算出AC,BD,(A+B)(C+D)即可。T(n)=3T(n/2)+O(n)

当n较小时直接暴力出解……测了下n<=10时效果最好,压3位的话60效果最好。

 

By Seter
  • 无匹配
SimonCao 说:
2012年6月12日 01:58

现在才会FFT的傻×表示压5位FFT和这个时间差不多T_T

Avatar_small
Seter 说:
2012年6月14日 14:34

跪烂了……不会实数FFT。。。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee