日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51nod 1172 Partial Sums V2 卡精度的任意模数FFT

發(fā)布時間:2024/4/17 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51nod 1172 Partial Sums V2 卡精度的任意模数FFT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

卡精度的任意模數fft模板題……
這道題隨便寫個表就能看出規(guī)律來(或者說考慮一下實際意義),反正拿到這題之后,很快就會發(fā)現(xiàn)他是任意模數fft模板題.
然后我就去網上抄了一下板子……
我打的是最土的任意模數fft,就是fft7次的那種……(好像有很多方法的樣子……)
這種任意模數fft方法見http://blog.csdn.net/l_0_forever_lf/article/details/52886397
這道題的具體做法見http://blog.csdn.net/qq_33229466/article/details/78837522
這種方法的思想就是:
  I.既然出題人給出了任意模數的多項式乘法,那么常規(guī)ntt肯定是不行
  II.既然他取模,那數會很大,會炸精,常規(guī)的fft也不行
  III.既然直接乘會炸精,那我們就把數變小,多跑幾次也沒關系
(IV.感覺加了一維卷積,有種這種方法很妙,可以繼續(xù)擴展的感覺,但是很模糊,也說不具體)
本著這種思路,我們逆變換的時候,不能在點值表達式直接操作,最后一遍回去,因為這樣效果和沒有在一開始把數縮小一樣,會炸精.
最后說一下這道題的坑點:如果你不預處理復數,你會炸精.
好像有的人沒有預處理,但是用了long double,就沒有被卡……
似乎cmath庫里有標準庫也有類庫,而且有的函數兩者并不都具有,但是最坑爹的一點是對于sin,cos等函數,cmath標準庫的精度大于cmath類庫……(這只是我經過親身試驗做出的推測)
反正預處理就沒有這些破事……

#include <cmath> #include <cstdio> #include <cstring> #include <complex> #include <algorithm> typedef long long LL; typedef double db; typedef std::complex<db> cd; const int N=200010; const db Pai=acos((db)-1); const int P=1000000007; cd a1[N],b1[N],a2[N],b2[N],c1[N],c2[N],c3[N],w1[N],w2[N]; int rev[N],len; int ai[N],bi[N],ans[N],ni[N]; inline void fft(cd *C,int opt,cd *wn){register int i,j,k;cd temp;for(i=1;i<len;++i)if(rev[i]>i)std::swap(C[i],C[rev[i]]);for(k=2;k<=len;k<<=1){for(i=0;i<len;i+=k){for(j=0;j<(k>>1);++j){temp=C[i+j+(k>>1)]*wn[len/k*j];C[i+j+(k>>1)]=C[i+j]-temp;C[i+j]+=temp;}}}if(opt==-1){db inv=1./len;for(i=0;i<len;++i)C[i]*=inv;} } inline void Mul(int *a,int *b,int *c,int n){len=1;while(len<n)len<<=1;int i,sqr=sqrt(P);cd temp;for(i=1;i<len;++i)rev[i]=(rev[i>>1]>>1)|((i&1)?(len>>1):0);for(i=0;i<len;++i){w1[i]=cd(std::cos(2.*Pai/len*i),std::sin(2.*Pai/len*i));w2[i]=cd(std::cos(-2.*Pai/len*i),std::sin(-2.*Pai/len*i));}for(i=0;i<len;++i){a1[i]=ai[i]/sqr,b1[i]=ai[i]%sqr;a2[i]=bi[i]/sqr,b2[i]=bi[i]%sqr;}fft(a1,1,w1),fft(b1,1,w1),fft(a2,1,w1),fft(b2,1,w1);for(i=0;i<len;++i){c1[i]=a1[i]*a2[i];c2[i]=a1[i]*b2[i]+a2[i]*b1[i];c3[i]=b1[i]*b2[i];}fft(c1,-1,w2),fft(c2,-1,w2),fft(c3,-1,w2);for(i=0;i<len;++i)c[i]=((LL)(round(c1[i].real()))%P*sqr%P*sqr%P+(LL)(round(c2[i].real()))%P*sqr%P+(LL)(round(c3[i].real()))%P)%P; } int main(){int n,k,i;scanf("%d%d",&n,&k);for(i=0;i<n;++i)scanf("%d",&ai[i]);bi[0]=1;for(i=1;i<n;++i)bi[i]=(LL)bi[i-1]*(k+i-1)%P*(i==1?ni[i]=1:ni[i]=(-(LL)(P/i)*ni[P%i]%P+P)%P)%P;Mul(ai,bi,ans,n<<1);for(i=0;i<n;++i)printf("%d\n",ans[i]);return 0; }

?

轉載于:https://www.cnblogs.com/TSHugh/p/8490076.html

總結

以上是生活随笔為你收集整理的51nod 1172 Partial Sums V2 卡精度的任意模数FFT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线sese | 亚洲最大成人av | 99国产精品久久 | japan高清日本乱xxxxx | 欧美在线三区 | 亚洲成人观看 | 91av综合| 窝窝午夜视频 | 国产精品成人久久久久久久 | jizz欧洲| 视频一区二区在线观看 | 少妇裸体挤奶汁奶水视频 | 日本不卡一区视频 | 91国内揄拍国内精品对白 | 欧美精品一区二区免费 | 一级全黄裸体片 | 污导航在线 | 日韩黄色大片 | 欧美日韩人妻精品一区二区 | 亚洲热影院 | 国产老熟女一区二区三区 | 久久伊人影视 | 福利在线小视频 | 日韩成人精品一区二区 | 午夜寂寞剧场 | 黄色动漫在线免费观看 | 久久久水蜜桃 | 日本天堂在线视频 | 亚洲私人影院 | 臭脚猛1s民工调教奴粗口视频 | 日韩社区 | aaa国产精品| 欧美最黄视频 | 色视频一区二区 | 毛片网止 | 国产人与禽zoz0性伦 | 看一级黄色片 | 国产视频一二三 | 成年人看的羞羞网站 | 欧美黄色免费 | 午夜福利三级理论电影 | 日韩污视频 | 日本国产一区二区 | 91精品国产色综合久久不8 | 国产av无码专区亚洲a∨毛片 | 精品人妻一区二区三区四区在线 | 国产av一区精品 | 日本免费一二区 | 第一福利在线视频 | 国产偷v国产偷v亚洲高清 | 色哟哟免费在线观看 | 女人下边被添全过视频 | 波多野结衣之双调教hd | 三级视频网| 免费毛片a | 成人黄色片在线观看 | 放荡闺蜜高h苏桃情事h | 97综合视频| 老太婆av | 免费看a级黄色片 | 日韩黄视频| 婷婷五月情 | 国产av国片偷人妻麻豆 | 国产123在线 | www.com日本 | 国产干b | 免费观看av网站 | 天天天天天天天干 | 亚洲视频大全 | 日韩免费黄色片 | 日韩污视频在线观看 | 久久av无码精品人妻系列试探 | a级小视频 | 夜夜草导航 | 日韩视频一二三区 | 国产精品嫩草影院桃色 | 欧美一级高清片 | 亚洲妇女体内精汇编 | 国产又粗又猛又爽又黄的视频一 | 天天操精品 | 成人午夜小视频 | 大奶子在线观看 | 亚洲国产剧情在线观看 | 天堂av资源在线观看 | 四虎影视最新网址 | 色一情一乱一区二区三区 | 好爽快一点高潮了 | 无码人妻熟妇av又粗又大 | 简单av在线 | 一级成人免费视频 | 亚洲一区二区三区四区五区午夜 | 91久久人澡人人添人人爽欧美 | 亚洲黄在线 | 熟妇高潮一区二区 | 久久婷婷五月综合色国产香蕉 | 激情婷婷六月天 | 极品久久久 | 中文字幕最新 | 人妻色综合网站 |