ACM训练题目【糖果传递】

简介: ACM训练题目【糖果传递】


1.题目



2.输入输出案例


输入样例:


4
1
2
5
4


输出样例:


4


3.思路


将问题抽象为数学模型



那么我们的目标就是:



通过限制条件转化为数学公式:



求解方程



上下相消:



依次类推,用x1表示每一个未知数:



朴素化最小值



得到递推式


cn = a拔 - an

那么:



4.代码


#include <bits/stdc++.h>
using namespace std;
const int N = 1000010;
int a[N],c[N];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    long long sum = 0;
    for(int i=1;i<=n;i++)
        sum+=a[i];
    long long avg = sum/n;
    for(int i=n;i>1;i--)
        c[i]=c[i+1]+avg-a[i];
    long long ans = 0;
    sort(c+1,c+n+1);
    for(int i=1;i<=n;i++)
        ans+=abs(c[i]-c[n/2+1]);
    cout<<ans;
    return 0;
}
目录
相关文章
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-478 分数序列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-478 分数序列
29 0
|
4月前
|
算法 Java C++
试题 算法训练 最长字符串
试题 算法训练 最长字符串
21 0
|
4月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-443 输出数字除本身的所有因子和
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-443 输出数字除本身的所有因子和
34 1
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
51 1
|
3月前
|
机器学习/深度学习 人工智能
PTA之N个数求和(细节题)天梯赛
编程题,要求计算以分子/分母形式给出的一组有理数的和,输出结果也要是最简有理数形式。输入包含正整数N(N≤100)及N个有理数,输出为和的最简形式。示例:输入5个数2/5, 4/15, 1/30, -2/60, 8/3,输出3 1/3;输入2个数4/3, 2/3,输出2。代码中包含求最大公约数的函数和计算有理数和的主要逻辑。
22 0
|
4月前
|
算法 Java C++
试题 算法训练 摆动序列
试题 算法训练 摆动序列
34 1
|
4月前
|
算法 测试技术 C#
C++二分向量算法:最多可以参加的会议数目 II
C++二分向量算法:最多可以参加的会议数目 II
|
机器学习/深度学习 自然语言处理 安全
将入学考试题搬进中文大模型数据集,20477道题目,还带4个候选答案
将入学考试题搬进中文大模型数据集,20477道题目,还带4个候选答案
170 0
|
算法
ACM算法训练【二进制中1的个数】
3.lowbit(x)运算 返回x二进制表示的最后一位1
51 1
ACM算法训练【二进制中1的个数】
|
算法
ACM算法训练【前缀和】
ACM算法训练【前缀和】
48 1
ACM算法训练【前缀和】