bzoj 4827: [HNOI2017]礼物 (FFT)
一道FFT
然而据说暴力可以水70分
然而我省选的时候看到了直接吓傻了 连暴力都没打
太弱了啊QAQ
emmmm
详细的拆开就看其他题解吧233
最后那一步卷积其实我一直没明白
后来画画图终于懂了
只要把其中一个反过来
多项式乘法的结果中的每一项系数就对应某一个Σx[i] * y[j] 的结果
前面几项是不完全的结果
但是太小了就被忽略啦
代码如下
/**************************************************************
Problem: 4827
User: cminus
Language: C++
Result: Accepted
Time:5644 ms
Memory:24568 kb
****************************************************************/ #include <cstdio>
#include <cmath>
#include <complex>
using namespace std; const int N = ;
typedef long long ll;
typedef complex<double> cp;
const double pi = acos(-1.0);
cp A[N], B[N]; void FFT(cp *y, int n, int type) {
if (n == ) return ;
cp l[n >> ], r[n >> ];
for (int i = ; i <= n; i++)
if (i & ) r[i >> ] = y[i];
else l[i >> ] = y[i];
FFT(l, n >> , type); FFT(r, n >> , type);
cp omegan(cos( * pi / n), sin( * pi * type / n)), omega(, );
for (int i = ; i < n >> ; i++) {
y[i] = l[i] + r[i] * omega;
y[i + (n >> )] = l[i] - r[i] * omega;
omega *= omegan;
}
} int main() {
int n, m, ans = , y = ;
scanf("%d %d", &n, &m);
for (int i = ; i < n; i++) {
int x; scanf("%d", &x);
A[n - i - ] = x;
ans += x * x;
}
for (int i = ; i < n; i++) {
int x; scanf("%d", &x);
B[i] = x;
ans += x * x;
y += (int)B[i].real() - A[n - i - ].real();
}
int n1; for (n1 = ; n1 <= n * ; n1 <<= );
for (int i = ; i < n; i++)
B[i + n] = B[i];
FFT(A, n1, ); FFT(B, n1, );
for (int i = ; i <= n1; i++)
A[i] *= B[i];
FFT(A, n1, -);
int temp = , z = (-y) / n;
for (int i = ; i < n; i++) temp = max(temp, (int)(A[i + n - ].real() / n1 + 0.5));
ans -= temp * ;
temp = z * z * n + y * z * ;
z += ; temp = min(temp, z * z * n + y * z * );
z -= ; temp = min(temp, z * z * n + y * z * );
// 有理有据的精度优化
ans += temp;
printf("%d\n", ans);
return ;
}
bzoj 4827: [HNOI2017]礼物 (FFT)的更多相关文章
- bzoj 4827: [Hnoi2017]礼物 [fft]
4827: [Hnoi2017]礼物 题意:略 以前做的了 化一化式子就是一个卷积和一些常数项 我记着确定调整值还要求一下导... #include <iostream> #include ...
- bzoj 4827 [Hnoi2017]礼物——FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4827 式子就是 \sum_{i=0}^{n-1}(a[ i ] - b[ i+k ] + c ...
- bzoj 4827 [Hnoi2017] 礼物 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4827 首先,旋转对应,可以把 b 序列扩展成2倍,则 a 序列对应到的还是一段区间: 再把 ...
- BZOJ 4827 [Hnoi2017]礼物 ——FFT
题目上要求一个循环卷积的最小值,直接破环成链然后FFT就可以了. 然后考虑计算的式子,可以分成两个部分分开计算. 前半部分FFT,后半部分扫一遍. #include <map> #incl ...
- bzoj 4827: [Hnoi2017]礼物【FFT】
记得FFT要开大数组!!开到快MLE的那种!!我这个就是例子TAT,5e5都RE了 在这题上花的时间太多了,还是FFT不太熟练. 首先看70分的n方做法:从0下标开始存,先n--,把a数组倍增,然后枚 ...
- 【刷题】BZOJ 4827 [Hnoi2017]礼物
Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在 ...
- BZOJ 4827: [Hnoi2017]礼物 FFT_多项式_卷积
题解稍后在笔记本中更新 Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r&q ...
- BZOJ:4827: [Hnoi2017]礼物
[问题描述] 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度. 但是在她生日的 ...
- 4827: [Hnoi2017]礼物
4827: [Hnoi2017]礼物 链接 分析: 求最小的$\sum_{i=1}^{n}(x_i-y_i)^2$ 设旋转了j位,每一位加上了c. $\sum\limits_{i=1}^{n}(x_{ ...
随机推荐
- PAT (Basic Level) Practice (中文)1016 部分A+B (15 分)
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA.例如:给定 8,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 ...
- 5G三大应用场景
5G三大应用场景:eMBB(增强移动宽带).eMTC(海量物联).uRLLC(高可靠低时延连接) ------20191215闪
- win10驱动签名禁用与启动
禁用:https://jingyan.baidu.com/article/624e74594dbc8d34e8ba5aa6.html?qq-pf-to=pcqq.c2c 启用或恢复:https://z ...
- WSO2 ESB XML定义语法(3)
6.Property Mediator 通过Synapse调解的每条消息都可以具有一组关联的属性.Synapse引擎和底层传输在处理的每条消息上设置了许多属性,用户可以操纵这些属性来修改消息流的运行时 ...
- 我的python笔记05
Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve ...
- Python标准库之sys模块
获取Python解释器的版本信息 import sys print(sys.version) #输出 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) ...
- HCTF2018-admin[flask session 伪造]
知识点:flask session 伪造 flask中session是存储在客户端cookie中的,也就是存储在本地.flask仅仅对数据进行了签名.众所周知的是,签名的作用是防篡改,而无法防止被读取 ...
- 开放系统互联(OSI)模型
开放系统互联(OSI)模型 是由国际标准化组织(ISO)于1984年提出的一种标准参考模型,是一种关于由不同供应商提供的不同设备和应用软件之间的网络通信的概念性框架结构.它被公认为是计算机通信和 in ...
- SIFT解析(一)高斯模糊
"模糊"的算法有很多种,其中有一种叫做"高斯模糊"(Gaussian Blur).它将正态分布(又名"高斯分布")用于图像处理. 所谓&qu ...
- QT版本
最近在linux下安装qt:发现主要的问题是qt的版本问题:下面来谈谈各个版本的理解 Qt 的版本是按照不同的图形系统来划分的,目前分为五个版本: Win: 适用于Miccrosoft Windows ...