博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3527: [Zjoi2014]力 - BZOJ
阅读量:5122 次
发布时间:2019-06-13

本文共 1105 字,大约阅读时间需要 3 分钟。

题目大意:给出n个数qi,定义 Fj为

      【BZOJ3527】【Zjoi2014】【力】 - z55250825 - z55250825

    令 Ei=Fi/qi,求Ei。

 

看了很久题解,终于有些眉目,因为知道要用FFT,所以思路就很直了

其实我们就是要±1/(j-i)^2 ( j-i大于0时为正,小于0时为负 ) 和 qi 的乘积要算到j这个位置上,这个满足卷积,所以用FFT优化,但是j-i有负数,所以我们就加上一个n

于是设pi={

i>n,1/(i-n)^2

i<n,-1/(n-i)^2

其他,0

}

然后就套FFT模板就行了

 

1 const 2     maxn=800100; 3 type 4     cp=record 5         x,y:double; 6     end; 7     arr=array[0..maxn]of cp; 8 var 9     a,b,w,tt:arr;10     n,m:longint;11 12 operator -(a,b:cp)c:cp;13 begin14     c.x:=a.x-b.x;15     c.y:=a.y-b.y;16 end;17 18 operator +(a,b:cp)c:cp;19 begin20     c.x:=a.x+b.x;21     c.y:=a.y+b.y;22 end;23 24 operator *(a,b:cp)c:cp;25 begin26     c.x:=a.x*b.x-a.y*b.y;27     c.y:=a.x*b.y+a.y*b.x;28 end;29 30 procedure dft(var a:arr;s,t:longint);31 var32     i,p:longint;33     wt:cp;34 begin35     if n>>t=1 then exit;36     dft(a,s,t+1);dft(a,s+1<
>t>>1-1 do38 begin39 p:=i<
<<1+s;40 wt:=w[i<
<
>t>>1]:=a[p]-wt;43 end;44 for i:=0 to n>>t-1 do45 a[s+i<
View Code

 

 

 

转载于:https://www.cnblogs.com/Randolph87/p/3805430.html

你可能感兴趣的文章
Eclipse中SpringBoot项目POM文件报UnKnown的解决方案
查看>>
文件创建、查看、删除
查看>>
Python基础教程【读书笔记】 - 2016/7/19
查看>>
通过Servlet生成验证码图片(转)
查看>>
more命令(转)
查看>>
SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新
查看>>
warshall 求传递闭包 Cow Contest POJ - 3660
查看>>
css3学习笔记之渐变
查看>>
你会使用super()吗?你确定你了解它吗?
查看>>
【bzoj4825】[Hnoi2017]单旋 线段树+STL-set
查看>>
【小记】-003--a标签与 window.location.href 的区别
查看>>
python学习第十天列表的增加,修改,删除操作方法
查看>>
专题2(附篇):平面问题的差分解之差分公式的推导
查看>>
Vim命令
查看>>
pl/sql配置连接远程数据库oracle,本地没有安装oracle数据库的情况下
查看>>
PLSQL不好用,提示ora-12514 错误解决方法
查看>>
Struts中如何实现查询结果分页显示
查看>>
Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据
查看>>
[Tips]解决HG之waiting for lock on repository
查看>>
css中的选择器
查看>>