博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LUOGU P3723 [AH2017/HNOI2017]礼物 (fft)
阅读量:4319 次
发布时间:2019-06-06

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

解题思路

  首先我们设变化量为\(r\),那么最终的答案就可以写成 :

\[ ans=min(\sum\limits_{i=1}^n(a_i-b_i+r)^2) \]

\[ ans=min(\sum\limits_{i=1}^n(a_i-b_i)^2-2*r*\sum\limits_{i=1}^{n}(a_i-b_i)+n*r^2) \]

继续化简:

\[ ans=min(\sum\limits_{i=1}^n a_i^2+\sum\limits_{i=1}^n b_i^2-2*\sum\limits_{i=1}^na_i*b_i-2*r*\sum\limits_{i=1}^{n}(a_i-b_i)+n*r^2) \]

\[ ans=min((\sum\limits_{i=1}^n a_i^2+\sum\limits_{i=1}^n b_i^2)-(2*r*\sum\limits_{i=1}^{n}(a_i-b_i)+n*r^2)-(2*\sum\limits_{i=1}^na_i*b_i)) \]

这样我们就可以发现,第一部分是一个定值,第二部分只需要从\(-m\)\(m\)枚举一下\(r\)就能算出,现在问题就是算第三部分。发现第三部分形式特别像卷积,就直接将\(a\)数组翻一下倍,表示旋转,\(b\)数字翻转一下。然后\(fft\)后算一个最大值即可。

代码

#include
#include
#include
#include
#include
using namespace std;const int MAXN = 50005<<3;const double Pi=acos(-1);typedef long long LL;inline int rd(){ int x=0,f=1;char ch=getchar(); while(!isdigit(ch)) {f=ch=='-'?0:1;ch=getchar();} while(isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} return f?x:-x;}int n,m,limit=1,rev[MAXN];LL ans,sqA,sqB,A,B,Sum=1e18;struct Complex{ double x,y; Complex(double xx=0,double yy=0) {x=xx;y=yy;}}a[MAXN],b[MAXN];Complex operator +(const Complex A,const Complex B) {return Complex(A.x+B.x,A.y+B.y);}Complex operator -(const Complex A,const Complex B) {return Complex(A.x-B.x,A.y-B.y);}Complex operator *(const Complex A,const Complex B) {return Complex(A.x*B.x-A.y*B.y,A.x*B.y+A.y*B.x);}inline void fft(Complex *f,int type){ for(int i=0;i
>1;Wn=Complex(cos(Pi/len),type*sin(Pi/len)); for(int k=0;k
>1]>>1)|((i&1)?limit>>1:0); fft(a,1);fft(b,1);for(int i=0;i

转载于:https://www.cnblogs.com/sdfzsyq/p/10013284.html

你可能感兴趣的文章
四种加载React数据的技术对比(Meteor 转)
查看>>
Airthmetic_Approching
查看>>
操作文本文件
查看>>
公司项目的几个问题
查看>>
解决win7下打开Excel2007,报“向程序发送命令时出现问题”的错误
查看>>
Velocity快速入门教程
查看>>
关于集合常见的问题
查看>>
车牌正则表达式
查看>>
Win form碎知识点
查看>>
避免使用不必要的浮动
查看>>
第一节:ASP.NET开发环境配置
查看>>
sqlserver database常用命令
查看>>
rsync远程同步的基本配置与使用
查看>>
第二天作业
查看>>
访问属性和访问实例变量的区别
查看>>
Spring MVC 异常处理 - SimpleMappingExceptionResolver
查看>>
props 父组件给子组件传递参数
查看>>
【loj6038】「雅礼集训 2017 Day5」远行 树的直径+并查集+LCT
查看>>
十二种获取Spring的上下文环境ApplicationContext的方法
查看>>
UVA 11346 Probability 概率 (连续概率)
查看>>