题意

求解 Ei = Fi/qi

解法:

方法一:

考虑左侧的式子,直接多项式乘法。

对于右面的式子,我们记做$B_j$,这样有

$$B_j = \sum_{j<i}{ revq_{n-i} f(i-j) }$$

$$B_j = \sum_{0<k<n-j}{ revq_t f(n-j-t) }$$

$$B_j = (revq \otimes f)_{n-j}$$

五次DFT变形即可。

在卡精度的情况下可以用实时用三角函数算 $wt$ 代替用 $wn$ 连乘旋转得到 $wt$。

#include <bits/stdc++.h>

#define PI acos(-1)

const int N = ;

using namespace std;

struct EX
{
double real,i;
EX operator+(const EX tmp)const{return (EX){real+tmp.real, i+tmp.i};};
EX operator-(const EX tmp)const{return (EX){real-tmp.real, i-tmp.i};};
EX operator*(const EX tmp)const{return (EX){real*tmp.real - i*tmp.i, real*tmp.i + i*tmp.real};};
}; int R[N<<]; void DFT(EX a[],int n,int tp_k)
{
for(int i=;i<n;i++) if(i<R[i]) swap(a[i],a[R[i]]);
for(int d=;d<n;d<<=)
{
EX wn = (EX){cos(PI/d), sin(PI/d)*tp_k};
for(int i=;i<n;i += (d<<))
{
EX wt = (EX){,}; //高速度用
for(int k=;k<d;k++, wt = wt*wn)
{
// EX wt = (EX){cos(PI*k / d) ,tp_k*sin(PI*k / d)}; //高精度用(到 10^14 的精度)
EX A0 = a[i+k], A1 = wt * a[i+k+d];
a[i+k] = A0+A1;
a[i+k+d] = A0-A1;
}
}
}
if(tp_k==-)
for(int i=;i<n;i++) a[i] = (EX){a[i].real/n, a[i].i/n};
} int n,m;
EX A[N<<],B[N<<],C[N<<];
double q[N],ans[N]; int main()
{
freopen("force.in", "r", stdin);
freopen("force.out", "w", stdout);
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%lf",&q[i]);
int L = ,tot;
while((<<L)<n+n-) L++;
tot = (<<L);
for(int i=;i<tot;i++) R[i]=(R[i>>]>>)|((i&)<<(L-)); for(int i=;i<n;i++) A[i] = (EX){q[i], };
for(int i=;i<n;i++) B[i] = (EX){/(double)i/(double)i, };
DFT(A,tot,);
DFT(B,tot,);
for(int i=;i<tot;i++) C[i] = A[i]*B[i];
DFT(C,tot,-);
for(int i=;i<n;i++) ans[i] += C[i].real; memset(A,,sizeof(A));
for(int i=;i<n;i++) A[i] = (EX){q[n-i], };
DFT(A,tot,);
for(int i=;i<tot;i++) C[i] = A[i]*B[i];
DFT(C,tot,-);
for(int i=;i<n;i++) ans[i] -= C[n-i].real; for(int i=;i<n;i++) printf("%.3lf\n",ans[i]);
return ;
}

方法二:

考虑拓展

$$C_{j+n} = \sum_{0 \leq k \leq j+n} { q_k A_{j+n-k} }$$

其中

$A_i = \frac{1}{(i-n)^2} (n < i < 2n)$

$A_i = \frac{1}{(n-i)^2} (0 < i < n)$

从而有 $B_j = C_{j+n}$

其他全为0,这样一次FFT卷积得到答案

#include <bits/stdc++.h>

#define PI acos(-1)

const int N = ;

using namespace std;

struct EX
{
double real,i;
EX operator+(const EX tmp)const{return (EX){real+tmp.real, i+tmp.i};};
EX operator-(const EX tmp)const{return (EX){real-tmp.real, i-tmp.i};};
EX operator*(const EX tmp)const{return (EX){real*tmp.real - i*tmp.i, real*tmp.i + i*tmp.real};};
}; int R[N<<]; void DFT(EX a[],int n,int tp_k)
{
for(int i=;i<n;i++) if(i<R[i]) swap(a[i],a[R[i]]);
for(int d=;d<n;d<<=)
{
EX wn = (EX){cos(PI/d), sin(PI/d)*tp_k};
for(int i=;i<n;i += (d<<))
{
EX wt = (EX){,}; //高速度用
for(int k=;k<d;k++, wt = wt*wn)
{
// EX wt = (EX){cos(PI*k / d) ,tp_k*sin(PI*k / d)}; //高精度用(到 10^14 的精度)
EX A0 = a[i+k], A1 = wt * a[i+k+d];
a[i+k] = A0+A1;
a[i+k+d] = A0-A1;
}
}
}
if(tp_k==-)
for(int i=;i<n;i++) a[i] = (EX){a[i].real/n, a[i].i/n};
} int n,m;
EX A[N<<],B[N<<],C[N<<];
double q[N],ans[N]; int main()
{
freopen("force.in", "r", stdin);
freopen("force.out", "w", stdout);
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%lf",&q[i]);
int L = ,tot;
while((<<L)<*n-) L++;
tot = (<<L);
for(int i=;i<tot;i++) R[i]=(R[i>>]>>)|((i&)<<(L-)); for(int i=;i<n;i++) A[i] = (EX){q[i], };
for(int i=;i<n;i++)
{
B[i] = (EX){-/(double)(n-i)/(double)(n-i), };
B[i+n] = (EX){/(double)i/(double)i, };
}
DFT(A,tot,);
DFT(B,tot,);
for(int i=;i<tot;i++) C[i] = A[i]*B[i];
DFT(C,tot,-);
for(int i=;i<n;i++) ans[i] = C[i+n].real;
for(int i=;i<n;i++) printf("%.3lf\n",ans[i]);
return ;
}

force的更多相关文章

  1. db2无法force掉备份连接的处理办法

    在数据库在线备份的时候会与Load和ALTER TABLE <表名> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE发生冲突导致这两种操作被挂 ...

  2. 【耐克】【空军一号 Nike Air Force 1】【软木塞】

     [高帮 全白 36-45] [空军一号 低帮 36-46] [空军一号 36-45] [Nike Air Force 1 Flyknit 空军中帮飞线系列 全黑 36-44] [耐克空军一号 软木塞 ...

  3. 关于Android Force Close 出现的原因 以及解决方法

    一.原因: forceclose,意为强行关闭,当前应用程序发生了冲突. NullPointExection(空指针),IndexOutOfBoundsException(下标越界),就连Androi ...

  4. HDOJ 3593 The most powerful force

    树形DP / 泛化物品的背包...可以去看09年徐持衡论文<浅谈几类背包问题> The most powerful force Time Limit: 16000/8000 MS (Jav ...

  5. Force StyleCop to Ignore a File

    You can quickly force StyleCop to ignore files in a project by manually modifying the project file, ...

  6. How to force the UI to refresh immediately(WPF)

    Question 0 Sign in to vote Folks, In my application, when the user hits "Submit" button, I ...

  7. Force.com微信企业号开发系列(一) - 启用二次验证

    微信于9月份推出企业号后引起了业界不小的反响,许多企业都在思索企业号将如何影响企业的运营,从本文开始,我将详细阐述微信企业号开发的相关知识,而本文将着重介绍如何实现更高安全机制的二次验证. 申请企业体 ...

  8. Force.com微信开发系列(七)OAuth2.0网页授权

    OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站上存储的私密资源(如用户个人信息.照片.视频.联系人列表),而无须将用户名和密码提供给第三方应用.本文将详细介绍OA ...

  9. Force.com微信开发系列(六)客服接口

    当用户主动发消息给微信公众账号的时候(包括发送信息.点击自定义菜单click事件.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前为48小时 ...

  10. Force.com微信开发系列(五)自定义菜单进阶及语音识别

    在上文里我们介绍了如何通过Force.com平台里为微信账号添加自定义菜单,本文里我们将进一步介绍如何查询菜单以及删除菜单的相关知识,最后会介绍微信平台如何进行语音识别的相关技术. 查询菜单 与创建菜 ...

随机推荐

  1. android 5.X Toolbar+DrawerLayout实现抽屉菜单

    前言  android5.X新增的一个控件Toolbar,这个控件比ActionBar更加自由,可控,因为曾经的ActionBar的灵活性比較差,所以google逐渐使用Toolbar替代Action ...

  2. 读取配置文件(configparser,.ini文件)

    使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [baseconf]host=127.0.0.1port=3306user=rootpassw ...

  3. Android对apk源代码的改动--反编译+源代码改动+又一次打包+签名【附HelloWorld的改动实例】

    最近遇到了须要改动apk源代码的问题,于是上网查了下相关资料.编写了HelloWorld进行改动看看可行性,经过实验证明此方案可行,而且后来也成功用这种方法对目标apk进行了改动,仅仅只是须要改动的部 ...

  4. php逻辑操作符中&和&&的异同

    php有5种算术操作符(+ - * / %),6种赋值操作符(+= -= *= /= %= .=),8种比较操作符(=== < > <= >= != <> !==) ...

  5. Linux 中权限控制实例

    前言 前文对 Linux 中的权限进行了较为透彻的分析.而本文,则在前文的基础上,具体说明如何在代码中进行权限控制. 下面的代码涉及到以下几个方面: 1. 创建文件时设置文件权限 2. 修改文件的默认 ...

  6. 解读OC中的load和initialize

    在 Objective-C 中,NSObject 是绝大多数类的基类.而在 NSObject 中有两个类方法 load 和 initialize,那这两个方法是在什么时机被调用呢?父类.Categor ...

  7. FeatureLayer.MODE_SNAPSHOT限制数量问题

    我在加载FeatureLayer的时候,采用MODE_SNAPSHOT模式,发现有的图层少了一些数据,改回MODE_ONDEMAND又正常. 究其原因,MODE_SNAPSHOT 是一次性将数据从服务 ...

  8. 网络直播流媒体协议的选择讨论,RTSP,RTMP,HTTP,私有协议?

    最近有不少人在EasyDarwin的交流群里面问关于花椒.映客手机直播技术的问题,还有RTSP.RTMP协议选择的问题,这里个人谈一下自己的愚见. 1.不管是RTSP/RTP.RTMP.HTTP,亦或 ...

  9. if __name__

     我们经常在python 程序中看到 if __name__ == '__main__' :这代表什么意思?    python中 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模 ...

  10. c# 怎么获取自己的IP地址

    1.aspx页面,asp.net项目的页面 <%@ Page Language="C#" AutoEventWireup="true" CodeBehin ...