zoukankan      html  css  js  c++  java
  • BZOJ1045:[HAOI2008]糖果传递(贪心)

    Description

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

    Input

    第一行一个正整数nn<=1'000'000,表示小朋友的个数.
    接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.

    Output

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

    Sample Input

    4
    1
    2
    5
    4

    Sample Output

    4

    Solution

    emmm今天好颓啥都不想干怕不是省选后遗症
    自己独立思考的能力还是不够,这也是我省选只能打暴力的原因……
    还是要多练啊
    https://www.cnblogs.com/CtrlCV/p/5626194.html 这个题解讲的还是很好的
    让我这个有公式恐惧症的人都看懂了

    Code

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<cstdlib>
     5 #include<algorithm>
     6 #define N (1000000+100)
     7 using namespace std;
     8 
     9 long long n,ave,ans,a[N],s[N];
    10 
    11 int main()
    12 {
    13     scanf("%lld",&n);
    14     for  (int i=1;i<=n;++i)
    15         scanf("%lld",&a[i]),ave+=a[i];
    16     ave/=n;
    17     for (int i=1;i<=n;++i)
    18         s[i]=s[i-1]+a[i]-ave;
    19     sort(s+1,s+n+1);
    20     for (int i=1;i<=n;++i)
    21         ans+=abs(s[i]-s[n/2+1]);
    22     printf("%lld",ans);
    23 }
  • 相关阅读:
    python list dict 去重的两种方式
    python 发送邮件
    mongo 查询总结
    vsftpd 安装配置
    简单配置 nginx 反向代理
    python 检查内存
    python ldap
    Centos 7 vsftpd ldap 配置
    centos7虚拟机开启端口后 外部不能访问的问题
    Linux下安装配置rocketmq (单个Master、双Master)
  • 原文地址:https://www.cnblogs.com/refun/p/8746984.html
Copyright © 2011-2022 走看看