BZOJ3527 力
来源:互联网 发布:js 如何取list 编辑:程序博客网 时间:2024/04/28 09:06
题目链接
题目大意
BZOJ讨论版里有pdf.
给出
对所有
题解
这道ZJOI2014的题感觉完全比不上上一道FFT构造题啊…
为了方便令
考虑怎么求前面那个和式,后面的那个和式可以把
怎么求?构造多项式!
注意到两个多项式相乘得到的系数是这样的:
然后很容易构造出多项式
然后这题套个FFT就没了.
时间复杂度
代码
#include<cstdio>#include<cmath>#include<complex>#include<algorithm>using namespace std;typedef complex<double> C;const int N=1e5+5,M=(1<<18)+5;const double pi=acos(-1.0);int rev[M];C A[M],B[M],ans[2][M];void FFT(C *arr,int n,int flag){ for(int i=0;i<n;++i) if(i<rev[i]) swap(arr[i],arr[rev[i]]); for(int m=2;m<=n;m<<=1){ C wm(cos(2*pi/m),flag*sin(2*pi/m)); for(int i=0;i<n;i+=m){ C w(1,0); for(int j=0;j<m>>1;++j,w*=wm){ C x=arr[i+j],y=w*arr[i+j+(m>>1)]; arr[i+j]=x+y; arr[i+j+(m>>1)]=x-y; } } }}void calc_FFT(int n,bool id){ int _n=n,m=n<<1,S=0; for(n=1;n<=m;n<<=1,++S); rev[0]=0; for(int i=1;i<n;++i) rev[i]=(rev[i>>1]>>1)|((i&1)<<S-1); for(int i=_n+1;i<n;++i) A[i]=B[i]=0; FFT(A,n,1); FFT(B,n,1); for(int i=0;i<n;++i) ans[id][i]=A[i]*B[i]; FFT(ans[id],n,-1); for(int i=0;i<m;++i) ans[id][i]/=n;}double num[N];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;++i) scanf("%lf",&num[i]); for(int i=0;i<n;++i){ A[i]=num[i]; B[i]=1.0/(i+1)/(i+1); } calc_FFT(n-1,0); for(int i=0;i<n-1-i;++i) swap(num[i],num[n-1-i]); for(int i=0;i<n;++i){ A[i]=num[i]; B[i]=1.0/(i+1)/(i+1); } calc_FFT(n-1,1); for(int i=n-1;i;--i){ ans[0][i]=ans[0][i-1]; ans[1][i]=ans[1][i-1]; } ans[0][0]=ans[1][0]=0; for(int i=0;i<n-1-i;++i) swap(ans[1][i],ans[1][n-1-i]); for(int i=0;i<n;++i) printf("%f\n",(ans[0][i]-ans[1][i]).real()); return 0;}/* Jun.20.16 Tags:FFT Submissions:1 Memory 19000kb Time 8356ms Code Length 1639B*/
0 0
- BZOJ3527 力
- BZOJ3527 力
- bzoj3527: [Zjoi2014]力
- bzoj3527: [Zjoi2014]力
- [bzoj3527][ZJOI2014]力
- bzoj3527 力 fft
- bzoj3527【ZJOI2014】力
- BZOJ3527: [Zjoi2014]力
- 【ZJOI2014】bzoj3527 力
- [BZOJ3527][Zjoi2014][FFT]力
- [题解]bzoj3527(ZJOI2014)力
- bzoj3527: [Zjoi2014]力
- bzoj3527 [Zjoi2014]力
- bzoj3527: [Zjoi2014]力
- BZOJ3527: [Zjoi2014]力
- [FFT] BZOJ3527: [Zjoi2014]力
- FFT BZOJ3527 [Zjoi2014]力
- bzoj3527 [Zjoi2014]力
- 微信对接
- [疯狂Java]正则表达式:捕获组、反向引用、捕获组命名
- Nodejs 发送HTTP POST请求实例
- 新的选择器
- Rule of three
- BZOJ3527 力
- 《学习opencv》笔记——关于一些绘图的函数
- java泛型方法
- 插入排序
- 前端工作环境的搭建
- 台大机器学习笔记——Adaboost
- JDBC中的——PreparedStatement 预编译原理
- 剑指offer题解 从尾到头打印链表
- 从文本文件导入数据到数据库表