HNOI2017 day1 T3 礼物

题目大意:

我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他决定买一对情侣手
环,一个留给自己,一个送给她。每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮
度。
但是在她生日的前一天,我的室友突然发现他好像拿错了一个手环,而且已经没时间去更
换它了!他只能使用一种特殊的方法,将其中一个手环中所有装饰物的亮度增加一个相同的自
然数 c(即非负整数)
。并且由于这个手环是一个圆,可以以任意的角度旋转它,但是由于上面
装饰物的方向是固定的,所以手环不能翻转。需要在经过亮度改造和旋转之后,使得两个手环
的差异值最小。
在将两个手环旋转且装饰物对齐了之后,从对齐的某个位置开始逆时针方向对装饰物编号
1,2,...,n,其中 n 为每个手环的装饰物个数,第 1 个手环的 i 号位置装饰物亮度为 x i ,第 2 个手
环的 i 号位置装饰物亮度为 y i ,两个手环之间的差异值为(参见输入输出样例和样例解释):
n
∑(x i − y i ) 2
i=1
麻烦你帮他计算一下,进行调整(亮度改造和旋转),使得两个手环之间的差异值最小,
这个最小值是多少呢?

题解:

因为在x中加等于在y中减,我们只考虑在y中加减。

sigma{(x[i]-(y[i]+c))^2}=sigma{x[i]^2+y[i]^2+c^2+2*c*y[i]-2*x[i]*y[i]-2*c*x[i]}

由于x[i]^2和y[i]^2]是定值,我们不考虑。那么就只剩n*c^2+2*c*(sumy-sumx)-2*sigma{x[i]*y[i]}

前面可以配方算出最小值,后面可以通过fft算出最小值。

时间: 2024-12-26 07:42:59

HNOI2017 day1 T3 礼物的相关文章

Day1: T3 bfs T4 树形DP

T3:BFS 回看了一下Day1的T3...感觉裸裸的BFS,自己当时居然没有看出来... 同时用上升和下降两种状态bfs即可 这一题还要注意一个细节的地方,就是题目要求的是求往返的最优解 k=min(d[上升],d[下降]); ans=min(2*k+1,d1[]+d2[]); 输出ans..这个地方需要理解: 其余的照bfs模板打即可:

斗地主 (NOIP2015 Day1 T3)

斗地主 思路 :读入时注意将A作为第14张牌,因为它可以连在K后, 总体思路为 先出炸弹和四带二 再出三带一 再把对牌和单牌出完 记录并更新Answer,后枚举顺子,并继续向下搜索. 注意:弄明白题意,题目描述不太清楚....另外,我觉的牌的花色只是能用来区分大小王.另外在整顺子之前也可以用贪心来搞其他类似四带二,三带一等的牌 #include <iostream> #include <cstdio> #include <cstring> using namespace

济南学习 Day1 T3 pm

[问题描述]小 Q 对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目:首先,小 Q 会在x轴正半轴和y轴正半轴分别挑选??个点.随后,他将x轴的点与y轴的点一一连接,形成??条线段,并保证任意两条线段不相交.小 Q 确定这种连接方式有且仅有一种.最后,小 Q 会给出m个询问.对于每个询问,将会给定一个点P(Px ,Py),请回答线段 OP 与m条线段会产生多少个交点?小 Q 找到了正在钻研数据结构的你,希望你可以帮他解决这道难题.[输

【NOIP 2014 DAY1 T3】飞扬的小鸟(DP)

题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败. 为了简化问题,我们对游戏规则进行了简化和改编: 游戏界面是一个长为n ,高为 m 的二维平面,其中有k 个管道(忽略管道的宽度). 小鸟始终在游戏界面内移动.小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成. 小鸟每个单位时间沿横坐标方向右移的距离为1 ,竖直移动

NOIP Day1 T3 货车运输

1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<queue> 5 #include<stack> 6 #include<iomanip> 7 #include<string> 8 #include<cstring> 9 #include<vector> 10 #include<bitset> 11

NOIP 2012 Day1 T3 开车旅行

1 #include<cstdio> 2 #include<iostream> 3 #include<iomanip> 4 #include<cmath> 5 #include<vector> 6 #include<queue> 7 #include<stack> 8 #include<bitset> 9 #include<algorithm> 10 #include<string> 1

XJOI网上同步训练DAY1 T3

思路:一开始看到这题的时候想DP,可是发现貌似不行..因为有前缀也有后缀,而且有的后缀会覆盖到现在的前缀,这就不满足无后效性了啊! 但是有个很巧妙的思路:如果我们知道a[i]的最大值,那么p的数量和q的数量也确定了.所以序列长度也确定了,设m为序列长度. 而且对于每个a[i]都代表了一个固定数量的p和q和长度. 因此,长度大于m/2的前缀,我们可以用总的p和总的q减去它,转换成小于等于m/2长度的前缀后缀. 这样我们可以设计DP为f[i][j][k],代表从左往右i个中有j个p,从右往左i个有k

2012Noip提高组Day1 T3 开车旅行

题目描述 小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的 城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 Hi,城市 i 和城市 j 之间的距离 d[i,j]恰好是这两个城市海拔高度之差的绝对值,即 d[i,j] = |Hi− Hj|. 旅行过程中,小 A 和小 B 轮流开车,第一天小 A 开车,之后每天轮换一次.他们计划 选择一个城市 S 作为起点,一直向东行驶,并且最多行驶 X 公里就结束旅行.小 A 和小 B

HNOI2017 day1 T2 影魔

题目大意: 影魔,奈文摩尔,据说有着一个诗人的灵魂.事实上,他吞噬的诗人灵魂早已成千上万.千百年来,他收集了各式各样的灵魂,包括诗人.牧师.帝王.乞丐.奴隶.罪人,当然,还有英雄. 每一个灵魂,都有着自己的战斗力,而影魔,靠这些战斗力提升自己的攻击.奈文摩尔有 n 个灵魂,他们在影魔宽广的体内可以排成一排,从左至右标号 1 到 n.第 i个灵魂的战斗力为 k[i],灵魂们以点对的形式为影魔提供攻击力,对于灵魂对 i,j(i<j)来说,若不存在 k[s](i<s<j)大于 k[i]或者 k