【HNOI2017】礼物
题面
题解
显然两个手环只需要一个的亮度增加\(c \in [-m, m]\)和原题是等价的。
于是可以写成这样一个公式:
\]
于是最后只有\(-2\sum_{i=1}^n x_iy_{i+k}\)不是常数项(假设\(c\)是常数)
于是现在问题变成了求\(\sum_{i=1}^nx_iy_{i+k}\)的最大值。
这个时候就需要用到一些套路。
我们将序列\(y\)反过来然后在后面接一遍,变成多项式卷积。
然后我们可以看出\(\sum x_iy_{i+k}\)就是\(x^{n+k-1}\)的系数,
然后\(\because m \leq 100\),暴力枚举\(c\)即可。
代码
// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define RG register
#define clear(x, y) memset(x, y, sizeof(x));
using namespace std;
inline int read()
{
int data=0, w=1;
char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
if(ch=='-') w=-1, ch=getchar();
while(ch>='0'&&ch<='9') data=(data<<3)+(data<<1)+(ch^48), ch=getchar();
return data*w;
}
const int maxn(2000010);
const double pi(acos(-1));
int d[maxn];
int s[maxn], ans=2147483647, cnt;
int n, m, r[maxn], N, M, c[maxn];
complex<double> a[maxn], b[maxn];
template<int opt>
inline void FFT(complex<double> *p)
{
for(RG int i=0;i<N;i++) if(i<r[i]) swap(p[i], p[r[i]]);
for(RG int i=1;i<=N;i<<=1)
{
RG complex<double> rot(cos(pi/i), opt*sin(pi/i));
for(RG int j=0;j<N;j+=(i<<1))
{
RG complex<double> w(1, 0);
for(RG int k=0;k<i;k++, w*=rot)
{
complex<double> x=p[j+k], y=w*p[j+k+i];
p[j+k]=x+y; p[j+k+i]=x-y;
}
}
}
}
inline void init()
{
M=n+(N=n-1);
for(RG int i=1;i<=n;i++) a[i-1]=d[i];
for(RG int i=0;i<n;i++) b[i]=b[i+n]=c[n-i];
M+=N; for(N=1;N<=M;N<<=1) ++cnt;
for(RG int i=0;i<N;i++) r[i]=(r[i>>1]>>1)|((i&1)<<(cnt-1));
FFT<1>(a); FFT<1>(b); for(RG int i=0;i<N;i++) a[i]*=b[i];
FFT<-1>(a);
for(RG int i=0;i<=M;i++) s[i]=(int)(a[i].real()/N+0.5);
}
int main()
{
n=read(); m=read();
for(RG int i=1;i<=n;i++) d[i]=read();
for(RG int i=1;i<=n;i++) c[i]=read();
init();
int o=0, p=0, q=0, r=0, maxs=-ans;
for(RG int i=1;i<=n;i++) o+=d[i]*d[i], p+=c[i]*c[i], q+=d[i], r+=c[i];
for(RG int i=n-1;i<(n<<1);i++) maxs=max(maxs, s[i]);
for(RG int C=-m;C<=m;C++)
{
int res=o+p+C*C*n+2*C*(q-r)-(maxs << 1);
ans=min(res, ans);
}
printf("%d\n", ans);
return 0;
}
【HNOI2017】礼物的更多相关文章
- bzoj 4827: [Hnoi2017]礼物 [fft]
4827: [Hnoi2017]礼物 题意:略 以前做的了 化一化式子就是一个卷积和一些常数项 我记着确定调整值还要求一下导... #include <iostream> #include ...
- P3723 [AH2017/HNOI2017]礼物
题目链接:[AH2017/HNOI2017]礼物 题意: 两个环x, y 长度都为n k可取 0 ~ n - 1 c可取任意值 求 ∑ ( x[i] - y[(i + k) % n + 1] ...
- 【BZOJ4827】 [Hnoi2017]礼物
BZOJ4827 [Hnoi2017]礼物 Solution 如果一串数的增加,不就等于另一串数减吗? 那么我们可以把答案写成另一个形式: \(ans=\sum_{i=1}^n(x_i-y_i+C)^ ...
- 4827: [Hnoi2017]礼物
4827: [Hnoi2017]礼物 链接 分析: 求最小的$\sum_{i=1}^{n}(x_i-y_i)^2$ 设旋转了j位,每一位加上了c. $\sum\limits_{i=1}^{n}(x_{ ...
- 【LG3723】[AHOI2017/HNOI2017]礼物
[LG3723][AHOI2017/HNOI2017]礼物 题面 洛谷 题解 首先我们将\(c\)看作一个可以为负的整数,那么我们就可以省去讨论在哪个手环加\(c\)的繁琐步骤了 设我们当前已经选好了 ...
- 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告
P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个 ...
- [BZOJ4827][Hnoi2017]礼物(FFT)
4827: [Hnoi2017]礼物 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1315 Solved: 915[Submit][Status] ...
- [Luogu P3723] [AH2017/HNOI2017]礼物 (FFT 卷积)
题面 传送门:洛咕 Solution 调得我头大,我好菜啊 好吧,我们来颓柿子吧: 我们可以只旋转其中一个手环.对于亮度的问题,因为可以在两个串上增加亮度,我们也可以看做是可以为负数的. 所以说,我们 ...
- 笔记-[AH2017/HNOI2017]礼物
笔记-[AH2017/HNOI2017]礼物 [AH2017/HNOI2017]礼物 \[\begin{split} ans_i=&\sum_{j=1}^n(a_j-b_j+i)^2\\ =& ...
- [bzoj4827][Hnoi2017]礼物_FFT
礼物 bzoj-4827 Hnoi-2017 题目大意:给定两个长度为$n$的手环,第一个手环上的$n$个权值为$x_i$,第二个为$y_i$.现在我可以同时将所有的$x_i$同时加上自然数$c$.我 ...
随机推荐
- 有道云笔记 markdown 本地资源图片 粘贴到word居然粘贴不过去 资源名不能有汉子
刚开始使用有道云笔记,整理一个说明文档的时候,出现了问题 我将一个图片保存到桌面,文件名是中文汉字的图片.在云笔记里能正常显示,但是粘贴到word里面,也没有图片.我尝试了半天.最后居然发现只要把文件 ...
- 2.Hibernate的主配置文件hibernate.cfg.xml
1.配置 Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表.Hibernate 也需要一套相关数据库和其它相关参数的配置设置.所有这些信息通常是作 ...
- API接口安全设计(转)
接口的安全性主要围绕Token.Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看: Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个To ...
- Jboss7.1 local EJB lookup problem
We are trying to lookup for an Local EJB in JBoss7.1, but we get an ClassCast Exception. This local ...
- 深度访谈Amazon员工与HR:华裔因pip跳楼背后(图)
http://www.wenxuecity.com/news/2016/12/01/5813342.html 首先,让我们来回顾一下这起事件.两天前在某论坛中,有同学发了这么一个帖子,大致意思是说有一 ...
- 51nod 1625 夹克爷发红包
题目链接戳这里 题意是有一个赋有非负数的矩阵,每次可以将某一行or某一列替换成某个数值,可以替换<=k次,问如何替换能使得矩阵总和最大,输出最大值. 一开始想的是简单的贪心:比如找当前收益最大的 ...
- Alpha冲刺报告(7/12)(麻瓜制造者)
今日已完成 邓弘立: 对主页UI进行了改进 符天愉: 打算开始写留言部分并且想要实现无限回复 搜索了下网上的实现方法,总结了两种方法,一种使用递归,一种使用嵌套集合.发现嵌套集合的方法很机智,,但是感 ...
- Alpha冲刺报告(9/12)(麻瓜制造者)
今日已完成 邓弘立: 正在进行主页逻辑的编写 符天愉: 部署商品发布和物品需求的接口 江郑: 尝试完善接口文档,进行进一步测试 刘双玉: 编写接口说明 肖小强: 进行逻辑模块的编写 李佳铭: 修改了U ...
- poi 创建excel数据
public static void main(String[] args) throws Exception { // TODO 设置excel的标题 List<String> exce ...
- laravel记录笔记Laravel 连接数据库、操作数据库的三种方式
laravel中提供DB facade(原始查找).查询构造器.Eloquent ORM三种操作数据库方式 1.连接数据库 .env 数据库配置 DB_HOST=localhost dbhost DB ...