zoukankan      html  css  js  c++  java
  • 【CodeVS 3123】 高精度练习之超大整数乘法

    RE了2发   init竟然会开小.......

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <complex>
     4 #include <iostream>
     5 #include <cmath>
     6 using namespace std;
     7 const  double PI= acos(-1);
     8 int init[100000*4+10];
     9 #define C complex<double>
    10 C a[100000*4+1],b[100000*4+1];
    11 int n,m,rev[100000*4];
    12 void FFT(C a[],int type)
    13 {
    14     for(int i=0;i<n;i++) if(rev[i]<i) swap(a[rev[i]],a[i]);
    15     for(int i=2;i<=n;i<<=1)
    16     {
    17         C wn(cos(2*PI/i),type*sin(2*PI/i));
    18         for(int j=0;j<n;j+=i)
    19         {
    20             C w(1,0),x,y;
    21             for(int k=0;k<i/2;k++)
    22             {
    23                 x=a[j+k];
    24                 y=a[j+k+i/2]*w;
    25                 a[j+k]=x+y;
    26                 a[j+k+i/2]=x-y;
    27                 w=w*wn;
    28             }
    29         }
    30     }
    31 }
    32 int main()
    33 {
    34     //freop0en("a.in","r",stdin);
    35     char c=getchar(); 
    36     while(c!=' ') init[++n]=c-'0',c=getchar();
    37     for(int i=n;i>=1;i--) a[n-i]=init[i];
    38     c=getchar();
    39     while(c!=' ') init[++m]=c-'0',c=getchar();
    40     for(int i=m;i>=1;i--) b[m-i]=init[i];
    41     
    42     n--,m--;
    43    // for(int i=0;i<=n;i++) cout<<a[i]<<' ';cout<<endl;
    44 //    for(int i=0;i<=m;i++) cout<<b[i]<<' ';cout<<endl; 
    45     m=n+m;int L=0
    46     for(n=1;n<=m;n<<=1)L++; L--;
    47     for(int i=0;i<n;i++) rev[i]=((rev[i>>1]>>1)|((i&1)<<L));
    48 
    49     FFT(a,1);FFT(b,1);
    50     for(int i=0;i<n;i++) a[i]*=b[i];
    51     FFT(a,-1);
    52     for(int i=0;i<=m;i++) init[i]=(int)(a[i].real()/n+0.5);//,cout<<init[i]<<' ';cout<<endl;
    53     init[m+1]=0;
    54     for(int i=0;i<=m;i++) init[i+1]+=init[i]/10,init[i]%=10;//,cout<<init[i+1]<<' ';cout<<endl;
    55     if(init[m+1]!=0) m++;
    56     for(int i=m;i>=0;i--) printf("%d",init[i]);
    57     return 0;
    58 }

  • 相关阅读:
    一个项目多个App项目搭建
    mac 配置sencha touch环境
    mac 配置pylucene
    django博客开发
    xampp添加 django支持
    mac安装apache的mod_wsgi模块
    修改xampp默认sql密码
    xampp 安装 mysql-python
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    MySQL问题解决:-bash:mysql:command not found
  • 原文地址:https://www.cnblogs.com/ofsxb/p/5154814.html
Copyright © 2011-2022 走看看