zoukankan      html  css  js  c++  java
  • bzoj 3527: [Zjoi2014]力

    都说这是个FFT模板题 可我这种蒟蒻还是看了大半天。。。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<cstdlib>
     5 #include<cmath>
     6 #include<queue>
     7 #include<algorithm>
     8 #include<vector>
     9 #include<complex>
    10 #define M 1000009
    11 #define EPS 1e-10
    12 #define MO 10000
    13 #define ll long long
    14 #define E complex<double>
    15 #define pi acos(-1)
    16 using namespace std;
    17 ll read()
    18 {
    19     char ch=getchar();
    20     ll x=0,f=1;
    21     for(;ch<'0'||ch>'9';ch=getchar())
    22         if(ch=='-')
    23           f=-1;
    24     for(;ch>='0'&&ch<='9';ch=getchar())
    25         x=x*10+ch-'0';
    26     return x*f;
    27 }
    28 E g[M],f[M],_f[M];
    29 int n,L,R[M];
    30 void fft(E a[M],int f)
    31 {
    32   for(int i=0;i<n;i++)
    33     if(i>R[i])
    34       swap(a[i],a[R[i]]);
    35   for(int i=1;i<n;i<<=1)
    36     {
    37       E wn(cos(pi/i),f*sin(pi/i));
    38       for(int j=0;j<n;j+=(i<<1))
    39         {
    40           E W(1,0);
    41           for(int k=0;k<i;k++,W*=wn)
    42             {
    43               E x=a[j+k],y=W*a[i+j+k];
    44               a[j+k]=x+y;
    45               a[i+j+k]=x-y;
    46             }
    47         }
    48     }
    49   if(f==-1)
    50     for(int i=0;i<n;i++)
    51       a[i]/=n;
    52 }
    53 int main()
    54 {
    55    n=read();
    56    n--;
    57    for(int i=0;i<=n;i++)
    58      {
    59        double a1;
    60        scanf("%lf",&a1);
    61        f[i]=a1;
    62        _f[n-i]=a1;
    63      }
    64    for(int i=1;i<=n;i++)
    65      g[i]=(1.0/i/i);
    66    int m=2*n;
    67    for(n=1;n<=m;n<<=1)
    68      L++;
    69    for(int i=0;i<n;i++)
    70      R[i]=(R[i>>1]>>1)|((i&1)<<(L-1));
    71    fft(f,1);
    72    fft(_f,1);
    73    fft(g,1);
    74    for(int i=0;i<n;i++)
    75      {
    76        f[i]*=g[i];
    77        _f[i]*=g[i];
    78      }
    79    fft(f,-1);
    80    fft(_f,-1);
    81    for(int i=0;i<=m/2;i++)
    82      printf("%.3lf
    ",f[i].real()-_f[m/2-i].real());
    83    return 0;
    84 }
  • 相关阅读:
    Django-建立网页
    selenium、unittest——POM框架并出报告
    unittest,requests——接口测试脚本及报告
    从浏览器地址栏输入网址,到网页彻底打开,中间都发生了什么?
    HTTP结构讲解——《HTTP权威指南》系列
    charles基本使用文档
    接口测试操作指引
    环境更新
    Linux查看文件内容
    通过Jmeter对Dubbo接口进行接口及性能测试
  • 原文地址:https://www.cnblogs.com/xiw5/p/5658624.html
Copyright © 2011-2022 走看看