首页 > 其他分享 >洛谷P2512 [HAOI2008]糖果传递

洛谷P2512 [HAOI2008]糖果传递

时间:2022-10-26 17:25:33浏览次数:81  
标签:Xi 洛谷 int P2512 传递 复制 小朋友 糖果 HAOI2008

SLOJ P1117. 糖果传递

题目描述

有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为11。

输入格式

小朋友个数n,下面n行ai

输出格式

求使所有人获得均等糖果的最小代价。

输入输出样例

输入 #1
4
1
2
5
4

 

输出 #1
4

 

说明/提示

对于100%的数据n≤106

思路:贪心(标签上的东西不抄白不抄)好吧我一开始是没有想明白的,受别的dalao启发,A为每个小朋友的原有糖果数,ave是平均值,X为需要给前一个小朋友的数目,C为相邻两个小朋友糖果数量之差,于是可以得到n个Ai-Xi+Xi+1=ave。

不难想到,最后一个方程可以由前面所有方程联立导出,所以有用的方程有且仅有n-1个。

我们可以将所有方程中的X视为自变量,我们就只用求Xi-Ci的极值便可算出此题的解了。

我们这时候可以与几何联系起来,这个问题即可视为:数轴上给定一些点,找出一个到他们距离之和最小的点,即是本题之解。

其中,不难看出,中位数的距离是最小的,证明可以看这里

#include<bits/stdc++.h>
using namespace std;
int n,a[1500010];
long long c[2000010],sum;
int main(){
    scanf("%d",&n);
    for(int i = 1;i<=n;i++){
        scanf("%d",&a[i]);
        sum+=a[i];
    }
    sum/=n;
    for(int i = 1;i<=n-1;i++)
        c[i] = c[i-1]+a[i]-sum;
    sort(c,c+n);
    int mid = (n-1)/2;
    long long ans = 0;
    for(int i = 0;i<=mid;++i)
        ans+=c[n-i-1]-c[i];
    printf("%lld",ans);
    return 0;
}

注意排序从零开排

综上所述,我是蒟蒻

补充个事,那个样例旁边的复制键是个假的(从洛谷复制题目时不知道怎么把这玩意带上了)

2022-10-26 17:14:55

标签:Xi,洛谷,int,P2512,传递,复制,小朋友,糖果,HAOI2008
From: https://www.cnblogs.com/cztq/p/16829000.html

相关文章

  • 洛谷 P6453
    设第\(i\)列高\(h_i\),建立序列\(h_i\)的小根笛卡尔树,然后树形DP。发现这样就将原来不规整的图形剖分成若干个矩形:我们发现,这样构成的若干个矩形正好对应小根笛卡......
  • 洛谷优秀油猴插件推荐
    前言转载自眭然的博客,有改编和新增下载链接油猴zip1.先打开edge浏览器的扩展(其他浏览器应该也可以加扩展,不过edge最好)2.打开开发者模式和允许来自其他应用商店的......
  • 洛谷 P6223
    树形DP完全不会。。首先将题目条件改一下:每个人有\(x-v_i\)块钱,要求使所有人的钱数非负的最小操作次数。注意到对于节点\(u\),在子树\(u\)内至多操作\(siz_u-1\)......
  • 洛谷 P5698 [CTSC1998]算法复杂度 题解
    前言咕了大半年,我回来了说实话当鸽子的感觉挺不错???原题链接题意给定一个伪代码,判断他总共需要进行几次操作,用多项式形式输出。题解首先,这是一道模拟题,发现性质的话比......
  • 洛谷 P3401
    甚么神仙题啊……#include<iostream>#include<vector>#include<cstdio>#include<cstring>#include<iterator>#include<utility>#defineintlonglongusin......
  • 洛谷上扒的DP练习题
    DP综述最优子结构:把原问题化到规模更小的问题后,原问题的最优解一定能从规模更小问题的最优解推出。无后效性:如果在某个阶段上过程的状态已知,则从此阶段以后过程的发展变......
  • 洛谷 P8089
    考虑对于满二叉树,显然只与\(dep\)有关,设\(f_{i}\)表示深度为\(i\)的答案(确切的说应该是到最深深度的距离),则有\(f_1=1,f_i=(f_{i-1}+1)^2(i\ge2)\)。则对于完全二叉......
  • 洛谷P5020题解
    原题P5020[NOIP2018提高组]货币系统思路概述题意分析给定包含一个整数\(n\)和一个正整数集合\(a\)的货币系统\((n,a)\),要求将其化简,输出最简的货币系统中的面......
  • 洛谷P2827题解
    原题P2827[NOIP2016提高组]蚯蚓思路概述题意分析给定整数\(n,m,q,u,v,t\)和一个数列\(\{a\}\),进行\(m\)次操作如下:每次选取其中最大数\(x\)切分为\([px],x......
  • 「题解」洛谷 P8529 [Ynoi2003] 赫露艾斯塔
    构造半平面莫队?/jk注意到对于一个半平面的直线,通过平移和旋转经过的点数,一定大于等于它们的对称差,因为对称差中的点会被经过奇数次,不在对称差中的点会被经过偶数次。那么......