2016-06-01  21:36:44

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3527

我就是一个大傻叉 微笑脸

  1. #include<bits/stdc++.h>
  2. #define inf 1000000000
  3. #define ll long long
  4. #define N 500005
  5. using namespace std;
  6. int read(){
  7. int x=,f=;char ch=getchar();
  8. while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
  9. while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
  10. return x*f;
  11. }
  12. const double Pi=acos(-1.0);
  13. struct CD{
  14. double x,y;
  15. CD(double a=,double b=){x=a,y=b;}
  16. friend CD operator + (CD n1,CD n2){return CD(n1.x+n2.x,n1.y+n2.y);}
  17. friend CD operator - (CD n1,CD n2){return CD(n1.x-n2.x,n1.y-n2.y);}
  18. friend CD operator * (CD n1,CD n2){return CD(n1.x*n2.x-n1.y*n2.y,n1.x*n2.y+n1.y*n2.x);}
  19. };
  20. CD a[N],b[N],c[N],d[N];
  21. int n,nn,bit;
  22. double q[N];
  23. void FFT(CD *a,int n,int type){
  24. for(int i=,j=;i<n;i++){
  25. if(j>i)swap(a[i],a[j]);
  26. int k=n;
  27. while(j&(k>>=))j&=~k;
  28. j|=k;
  29. }
  30. for(int i=;i<=bit;i++){
  31. CD w_n(cos(*type*Pi/(<<i)),sin(*type*Pi/(<<i)));
  32. for(int j=;j<(<<bit);j+=(<<i)){
  33. CD w(,);
  34. for(int k=j;k<j+(<<(i-));k++){
  35. CD tmp=a[k],tt=w*a[k+(<<(i-))];
  36. a[k]=tmp+tt;a[k+(<<(i-))]=tmp-tt;
  37. w=w*w_n;
  38. }
  39. }
  40. }
  41. if(type<)for(int i=;i<n;i++)a[i].x=a[i].x/n;
  42. }
  43. int main(){
  44. n=read();nn=n;
  45. for(int i=;i<n;i++)scanf("%lf",&q[i]),a[i]=CD(q[i],);
  46. for(int i=;i<n;i++)b[i].x=1.0/(double)(i*i),b[i].y=;
  47. n=*n-;bit=;
  48. while((<<bit)<n)bit++;
  49. n=<<bit;
  50. b[]=CD();
  51. for(int i=nn;i<n;i++)a[i]=CD(),b[i]=CD();
  52.  
  53. FFT(a,n,);FFT(b,n,);
  54. for(int i=;i<n;i++)c[i]=a[i]*b[i];
  55. FFT(c,n,-);
  56. for(int i=;i<nn;i++)a[i]=CD(q[nn-i-],);
  57. for(int i=nn;i<n;i++)a[i]=CD();
  58. FFT(a,n,);
  59. for(int i=;i<n;i++)d[i]=a[i]*b[i];
  60. FFT(d,n,-);
  61.  
  62. for(int i=;i<nn;i++)c[i].x-=d[nn-i-].x;
  63. for(int i=;i<nn;i++)printf("%.5lf\n",c[i].x);
  64. return ;
  65. }

【bzoj3527】[Zjoi2014]力 FFT的更多相关文章

  1. bzoj3527: [Zjoi2014]力 fft

    bzoj3527: [Zjoi2014]力 fft 链接 bzoj 思路 但是我们求得是 \(\sum\limits _{i<j} \frac{q_i}{(i-j)^2}-\sum_{i> ...

  2. [BZOJ3527][ZJOI2014]力 FFT+数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3527 首先卷积的形式是$h(i)=\sum_{i=0}^jf(i)g(i-j)$,如果我们 ...

  3. BZOJ3527[Zjoi2014]力——FFT

    题目描述 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<100000 ...

  4. [bzoj3527][Zjoi2014]力_FFT

    力 bzoj-3527 Zjoi-2014 题目大意:给定长度为$n$的$q$序列,定义$F_i=\sum\limits_{i<j}\frac{q_iq_j}{(i-j)^2}-\sum\lim ...

  5. 【BZOJ-3527】力 FFT

    3527: [Zjoi2014]力 Time Limit: 30 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 1544  Solved: 89 ...

  6. 【BZOJ】3527: [Zjoi2014]力 FFT

    [参考]「ZJOI2014」力 - FFT by menci [算法]FFT处理卷积 [题解]将式子代入后,化为Ej=Aj-Bj. Aj=Σqi*[1/(i-j)^2],i=1~j-1. 令f(i)= ...

  7. P3338 [ZJOI2014]力(FFT)

    题目 P3338 [ZJOI2014]力 做法 普通卷积形式为:\(c_k=\sum\limits_{i=1}^ka_ib_{k-i}\) 其实一般我们都是用\(i=0\)开始的,但这题比较特殊,忽略 ...

  8. bzoj3527: [Zjoi2014]力 卷积+FFT

    先写个简要题解:本来去桂林前就想速成一下FFT的,结果一直没有速成成功,然后这几天断断续续看了下,感觉可以写一个简单一点的题了,于是就拿这个题来写,之前式子看着别人的题解都不太推的对,然后早上6点多推 ...

  9. 2019.02.28 bzoj3527: [Zjoi2014]力(fft)

    传送门 fftfftfft菜题. 题意简述:给一个数列aia_iai​,对于i=1→ni=1\rightarrow ni=1→n求出ansi=∑i<jai(i−j)2−∑i>jai(i−j ...

随机推荐

  1. HDU3359 Kind of a Blur(高斯消元)

    建立方程后消元 #include<cstdio> #include<iostream> #include<cstdlib> #include<cstring& ...

  2. font-face使用备忘

    @font-face { font-family: 'SingleMalta'; src: url('./font/SingleMalta.ttf'); } @font-face { font-fam ...

  3. PHP+Nginx环境搭配

    一.Nginx安装 nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. u ...

  4. C# DatrgridView表格控件的一些用法

    public class useDatrgrivView { string conn = null; string sqlComm = null; DataSet das = null; DataGr ...

  5. 第一篇:SOUI是什么?

    概述 用C++做产品最痛苦的是什么?肯定是做UI. SOUI的使命就是把痛苦的UI变化成快乐的UI. 什么?UI还能快乐?脑子进水了吗? 当你看完这个系统教程的时候相信你面对UI至少不会再痛苦.你可以 ...

  6. C#中var和dynamic

    var与dynamic这两个关键字,只是看起来很相似,仅此而已!var表示“变量的类型是在编译时决定的”,但是dynamic表 示“变量的类型是在运行时决定的”.因此,dynamic与var具有截然不 ...

  7. XML 文件解析

    1.XML文件 <Data> <Movie id="1"> <title>good lucky to you</title> < ...

  8. 使用MulticastSocket实现多点广播

    原文链接:http://hbiao68.iteye.com/blog/1943354 使用MulticastSocket实现多点广播 DatagramSocket只允许数据报发送给指定的目标地址,而M ...

  9. 关于MFC OpenGL环境配置的一点总结

    复制include时要小心..看vs给你load哪一个..名字一样..东西可不一定一样哦 http://www.cppblog.com/wicbnu/archive/2010/09/30/128123 ...

  10. JMeter常用字符串相关函数

    JMeter的惯用函数使用-字符串相关 主要的函数如下:1.将字符串转为大写或小写: ${__lowercase(Hello,)}  ${__uppercase(Hello,)}2.生成字符串:  _ ...