BZOJ3527[ZJOI]力
无题面神题
原题意:

求所有的Ei=Fi/qi。
题解:
qi被除掉了,则原式中的qj可以忽略。
用a[i]表示q[i],用b[j-i]来表示±1/((j-i)^2)(j>i时为正,j<i时为负)
则求E[j]就是多项式乘法了。
因为是FFT,所以b的下标要增加到0及以上。
这题时限有30s,比某题友好多了。
代码:
type
xs=record
x,y:double;
end;
arr=array[..]of xs;
var
e,t:arr;
a:array[..]of arr;
n,m,i:longint;
function jian(a,b:xs):xs;
begin
jian.x:=a.x-b.x;
jian.y:=a.y-b.y;
end;
function jia(a,b:xs):xs;
begin
jia.x:=a.x+b.x;
jia.y:=a.y+b.y;
end;
function cheng(a,b:xs):xs;
begin
cheng.x:=a.x*b.x-a.y*b.y;
cheng.y:=a.x*b.y+a.y*b.x;
end;
procedure fft(xx,s,nn,mm:longint);
var
i,j:longint;
w:xs;
begin
if nn= then
begin a[xx+,s]:=a[xx,s]; exit; end;
for i:= to nn div - do
begin t[i]:=a[xx,i*+s]; t[i+nn div ]:=a[xx,i*++s]; end;
for i:= to nn- do a[xx,s+i]:=t[i];
fft(xx,s,nn div ,mm*); fft(xx,s+nn div ,nn div ,mm*);
for i:= to nn div - do
begin
j:=s+i;
w:=cheng(e[i*mm],a[xx+,j+nn div ]);
t[j]:=jia(a[xx+,j],w);
t[j+nn div ]:=jian(a[xx+,j],w);
end;
for i:=s to s+nn- do a[xx+,i]:=t[i];
end;
begin
read(m);
for i:= to m- do read(a[,i].x);
for i:= to m- do a[,i].x:=-/(m-i)/(m-i);
for i:=m+ to m*- do a[,i].x:=/(i-m)/(i-m);
n:=;
while n<m* do n:=n*;
for i:= to n- do e[i].x:=cos(pi**i/n);
for i:= to n- do e[i].y:=sin(pi**i/n);
fft(,,n,); fft(,,n,);
for i:= to n- do a[,i]:=cheng(a[,i],a[,i]);
for i:= to n- do e[i].y:=-e[i].y;
fft(,,n,);
for i:=m to m*- do writeln((a[,i].x/n)::);
end.
BZOJ3527[ZJOI]力的更多相关文章
- 【BZOJ3527】力(FFT)
[BZOJ3527]力(FFT) 题面 Description 给出n个数qi,给出Fj的定义如下: \[Fj=\sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{ ...
- bzoj3527: [Zjoi2014]力 fft
bzoj3527: [Zjoi2014]力 fft 链接 bzoj 思路 但是我们求得是 \(\sum\limits _{i<j} \frac{q_i}{(i-j)^2}-\sum_{i> ...
- [bzoj3527][Zjoi2014]力_FFT
力 bzoj-3527 Zjoi-2014 题目大意:给定长度为$n$的$q$序列,定义$F_i=\sum\limits_{i<j}\frac{q_iq_j}{(i-j)^2}-\sum\lim ...
- 【BZOJ-3527】力 FFT
3527: [Zjoi2014]力 Time Limit: 30 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 1544 Solved: 89 ...
- bzoj3527: [Zjoi2014]力
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- BZOJ3527[Zjoi2014]力——FFT
题目描述 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<100000 ...
- bzoj3527: [Zjoi2014]力 卷积+FFT
先写个简要题解:本来去桂林前就想速成一下FFT的,结果一直没有速成成功,然后这几天断断续续看了下,感觉可以写一个简单一点的题了,于是就拿这个题来写,之前式子看着别人的题解都不太推的对,然后早上6点多推 ...
- 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 ...
- BZOJ3527 [Zjoi2014]力 【fft】
题目 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入格式 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. 输出格式 n行,第i行输出Ei.与标准答案误差不超过 ...
随机推荐
- [C#] 走进异步编程的世界 - 剖析异步方法(上)
走进异步编程的世界 - 剖析异步方法(上) 序 这是上篇<走进异步编程的世界 - 开始接触 async/await 异步编程>(入门)的第二章内容,主要是与大家共同深入探讨下异步方法. 本 ...
- java监控之ManagementFactory分析
The ManagementFactory class is a factory class for getting managed beans for the Java platform. This ...
- 读书笔记--SQL必知必会20--管理事务处理
20.1 事务处理 使用事务处理(transaction processing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性. 如果没有错误发生,整组语句提交给数据库表 ...
- 我为什么要自己编译openjdk8以及那些坑
我为什么要自己编译openjdk8以及那些坑 这是笔者第二次编译openjdk, 第一次编译的是openjdk7,那么好多人会好奇,为什么要自己编译openjdk呢,官方不是已经发布了安装包了么? 要 ...
- agsXMPP
agsXMPP使用 agsXMPP中的例子已经有注册.登录.添加好友.接收好友添加请求.发送消息.接收消息等功能. 修改用户密码 登录后可用以下方法修改密码 IQ iq = new IQ(IqType ...
- C# 读取app.config配置文件 节点键值,提示 "配置系统未能初始化" 错误的解决方案
新建C#项目,在app.config中添加了appSettings项,运行时出现"配置系统未能初始化"的错误,MSDN里写到,如果配置文件中包含 configSections 元素 ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.0.1
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- Atitit.eclise的ide特性-------abt 编译
Atitit.eclise的ide特性-------abt 编译 为什么要在Intellij IDEA中使用Eclipse编译器 如果你使用Intellij Idea,你应该考虑使用Eclipse编译 ...
- Idea SpringMVC+Spring+MyBatis+Maven调整【转】
Idea SpringMVC+Spring+MyBatis+Maven整合 创建项目 File-New Project 选中左侧的Maven,选中右侧上方的Create from archetyp ...
- 菜鸟快飞之JavaScript函数
1.复制变量值 在说函数前,我觉得需要先说说关于变量值的复制,以便后面的理解. 复制基本类型的值: 当一个变量复制另外一个值为基本类型的变量时,两个变量可以参与任何操作而不会互相影响 var num1 ...