题解

二项式展开,然后暴力FFT就好了。会发现有一个卷积与c无关,我们找一个最小的项就行了。

Tips:记得要倍长其中一个数组,防止FFT出锅

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 5e4+10;
const double pi = acos(-1.0);
struct Complex{
double r,i;
Complex(double r,double i):r(r),i(i){}
Complex(){}
} A[maxn<<4],B[maxn<<4];
Complex operator + (Complex a,Complex b) {
return Complex(a.r+b.r,a.i+b.i);
}
Complex operator - (Complex a,Complex b) {
return Complex(a.r-b.r,a.i-b.i);
}
Complex operator * (Complex a,Complex b) {
return Complex(a.r*b.r-a.i*b.i,a.r*b.i+a.i*b.r);
}
void operator *= (Complex &a,Complex b) {
a=a*b;
}
void fft(Complex *a,int n,int inv) {
for(int i = 1,j=n>>1;i<n-1;++i) {
if(i<j) swap(a[i],a[j]);
int k = n>>1;
while(j>=k) j-=k,k>>=1;
j+=k;
}
for(int j = 2;j<=n;j<<=1) {
Complex wn(cos(2*pi/j*inv),sin(2*pi/j*inv));
for(int i = 0;i<n;i+=j) {
Complex w(1,0);
for(int k = i;k<i+(j>>1);++k) {
Complex u(a[k]),t(a[k+(j>>1)]*w);
a[k]=u+t;
a[k+(j>>1)]=u-t;
w*=wn;
}
}
}
if(inv == -1)
for(int i = 0;i<n;++i) a[i].r/=n;
}
int n,m;
int a[maxn],b[maxn];
ll aa,bb,sa,sb;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i = 0;i<n;++i) cin>>a[i];
for(int i = 0;i<n;++i) cin>>b[i];
for(int i = 0;i<n;++i) {
aa+=a[i]*a[i];
bb+=b[i]*b[i];
sa+=a[i];
sb+=b[i];
}
for(int i = 0;i<n;++i) A[n-i].r=a[i],B[i].r=B[i+n].r=b[i];
int lmt = 1;
while(lmt<=2*n) lmt<<=1;
fft(A,lmt,1);fft(B,lmt,1);
for(int i = 0;i<lmt;++i) A[i]*=B[i];
fft(A,lmt,-1);
ll mn = 0;
for(int i = 0;i<2*n;++i) {
mn = max(mn , (ll)(A[i].r+0.5));
}
ll ans = 10000000000000000LL;
for(int c = -m;c<=m;++c) {
ll cc = 1LL*n*c*c;
ans = min(ans , aa+bb+cc+2LL*sa*c-2LL*sb*c-2LL*mn);
}
cout<<ans<<endl;
return 0;
}

【文文殿下】[AH2017/HNOI2017]礼物的更多相关文章

  1. P3723 [AH2017/HNOI2017]礼物

    题目链接:[AH2017/HNOI2017]礼物 题意: 两个环x, y 长度都为n k可取 0 ~ n - 1      c可取任意值 求 ∑ ( x[i] - y[(i + k) % n + 1] ...

  2. 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告

    P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个 ...

  3. [Luogu P3723] [AH2017/HNOI2017]礼物 (FFT 卷积)

    题面 传送门:洛咕 Solution 调得我头大,我好菜啊 好吧,我们来颓柿子吧: 我们可以只旋转其中一个手环.对于亮度的问题,因为可以在两个串上增加亮度,我们也可以看做是可以为负数的. 所以说,我们 ...

  4. 笔记-[AH2017/HNOI2017]礼物

    笔记-[AH2017/HNOI2017]礼物 [AH2017/HNOI2017]礼物 \[\begin{split} ans_i=&\sum_{j=1}^n(a_j-b_j+i)^2\\ =& ...

  5. [AH2017/HNOI2017]礼物(FFT)

    题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在她生日的前一 ...

  6. [AH2017/HNOI2017]礼物

    题解: 水题 化简一波式子会发现就是个二次函数再加上一个常数 而只有常数中的-2sigma(xiyi)是随移动而变化的 所以只要o(1)求出二次函数最大值然后搞出sigma(xiyi)就可以了 这个东 ...

  7. BZOJ4827:[AH2017/HNOI2017]礼物——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4827 https://www.luogu.org/problemnew/show/P3723 题面 ...

  8. Luogu 3723 [AH2017/HNOI2017]礼物

    BZOJ 4827 $$\sum_{i = 1}^{n}(x_i - y_i + c)^2 = \sum_{i = 1}^{n}(x_i^2 + y_i^2 + c^2 - 2 * x_iy_i + ...

  9. 【[AH2017/HNOI2017]礼物】

    题目 又是我不会做的题了 看看柿子吧 \[\sum(a_i+c-b_i)^2\] 最小化这个柿子 之所以不写下标是因为我们这个\(\{a\},\{b\}\)可以循环同构 那就开始化吧 \[\sum(a ...

随机推荐

  1. Docker 介绍和使用

    Docker 技术可以实现容器装载软件和依赖库,类似于封闭的Linux系统,默认相当于有root权限,可以快速移植和部署到其他机器上. Docker 容器技术可以理解为:仓库(储物间),镜像(类似于面 ...

  2. 【转】四、可空类型Nullable<T>到底是什么鬼

    [转]四.可空类型Nullable<T>到底是什么鬼 值类型为什么不可以为空 首先我们都知道引用类型默认值都是null,而值类型的默认值都有非null. 为什么引用类型可以为空?因为引用类 ...

  3. 【Java】使用Apache POI生成和解析Excel文件

    概述 Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作,分别有jxl和poi,2种方式. HSSF is the POI Project's pure ...

  4. spring学习九 spring aop详解

    本文来自于:https://www.cnblogs.com/jingzhishen/p/4980551.html AOP(Aspect-Oriented Programming,面向方面编程),可以说 ...

  5. [RequireComponent(typeof(....))]

    RequireComponent的使用: 当你添加的一个用了RequireComponent组件的脚本,需要的组件将会自动被添加到game object(游戏物体).这个可以有效的避免组装错误.举个例 ...

  6. PHP中=>是什么意思

    一般用在php数组键名与元素的连接符如:$arr = array('a'=>'123','b'=>'456'); foreach($arr as $key=>$val){//$key ...

  7. 更新源pip

    国内镜像源列表 豆瓣(douban) http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/阿里云 h ...

  8. 轮询、中断、DMA和通道

    from http://blog.csdn.net/lastsweetop/article/details/3418769 一.轮询方式 对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的 ...

  9. C++之输出100-200内的素数

    素数(质数)    除了1和它本身以外不再被其他的除数整除. // 输出100--200内的素数 #include<iostream> using namespace std; int m ...

  10. UVa 10828 Back to Kernighan-Ritchie (数学期望 + 高斯消元)

    题意:给定一个 n 个结点的有向图,然后从 1 结点出发,从每个结点向每个后继结点的概率是相同的,当走到一个没有后继结点后,那么程序终止,然后问你经过每个结点的期望是次数是多少. 析:假设 i 结点的 ...