BZOJ2179——FFT快速傅立叶
来源:互联网 发布:设计软件图标 编辑:程序博客网 时间:2024/06/07 03:38
1、题意:高精度乘法。
2、分析:不是很懂虚数根的那一套理论,就知道是分治。。。
#include<bits/stdc++.h>using namespace std;#define M 270010#define pb push_back#define LL long long#define MOD 1000000007#define inf 1047483647#define vi vector<int>#define pii pair<int,int>#define llinf 4000000000000000000ll#define For(i,x,y) for(int i=(x);i<(y);i++)#define rep(i,x,y) for(int i=(x);i<=(y);i++)#define drep(i,x,y) for(int i=(x);i>=(y);i--)inline int read(){ char ch=getchar();int x=0,f=1; while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}namespace FFT{ #define Com complex<double> int N,rev[M]; Com a[M],b[M],xx,yy; inline void init(int n) { int t=0; while((1<<(t))<=n)t++; N=(1<<t);t--;//N=262144;t=17; For(i,1,N)rev[i]=(rev[i/2]/2)|((i&1)<<t); } inline void fft(Com *a,int op) { For(i,0,N)if(i>rev[i])swap(a[i],a[rev[i]]); for(int i=1;i<N;i<<=1) { Com w(cos(M_PI/i),op*sin(M_PI/i)); for(int j=0;j<N;j+=i*2) { Com e(1,0); For(k,0,i) { xx=a[j+k];yy=a[j+k+i]*e; a[j+k]=xx+yy;a[j+k+i]=xx-yy; e*=w; } } } } inline void solve() { fft(a,1);fft(b,1); For(i,0,N)a[i]=a[i]*b[i]; fft(a,-1); }}char ch[M];int c[M];int main(){ //freopen("0input.in","r",stdin);//freopen(".out","w",stdout); int n=read();FFT::init(n+n); scanf("%s",ch);drep(i,n-1,0)FFT::a[n-i-1]=ch[i]-'0'; scanf("%s",ch);drep(i,n-1,0)FFT::b[n-i-1]=ch[i]-'0'; FFT::solve();For(i,0,FFT::N)c[i]=(int)(FFT::a[i].real()/FFT::N+0.5); /*int pos=0;For(i,0,FFT::N)if(c[i])pos=i; rep(i,0,pos/2)swap(c[i],c[pos-i]);*/ //rep(i,0,3)printf("%d\n",c[i]); int rt=0; For(i,0,FFT::N) { if(c[i])rt=i; c[i+1]+=c[i]/10; c[i]%=10; }drep(i,rt,0)printf("%d",c[i]); return 0;}
0 0
- BZOJ2179——FFT快速傅立叶
- bzoj2179: FFT快速傅立叶
- [BZOJ2179]FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- [BZOJ2179]FFT快速傅立叶
- 【bzoj2179】FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- bzoj2179: FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- [bzoj2179]FFT快速傅立叶
- bzoj2179 FFT快速傅立叶
- BZOJ2179: FFT快速傅立叶
- BZOJ2179 FFT快速傅立叶
- FFT bzoj2179: FFT快速傅立叶
- 【bzoj2179】FFT快速傅立叶 FFT
- BZOJ2179: FFT快速傅立叶 FFT
- 【FFT】BZOJ2179 FFT快速傅立叶
- 郁闷!ionic中获取ng-model绑定的值为undefined如何解决
- [SSOI3051] 礼物(present)
- 博客开通啦
- FFmpeg 基本用法--此文转载,作为笔记
- Swift3.1(2)Basic Opetators
- BZOJ2179——FFT快速傅立叶
- Linux硬盘相关检测
- Email 的两种方法
- HDU5521Meeting 【Dijkstra】
- [C#]Debug客户端时,关联服务端代码
- linux定时器的使用
- Navicate使用http通道访问数据库
- Python 调用C# 删除所有文件
- opencv中的Mat类型向Eigen中的Matrix类型转换