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;
}
目录
相关文章
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-478 分数序列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-478 分数序列
31 0
|
6月前
|
算法 Java Serverless
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
56 1
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-443 输出数字除本身的所有因子和
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-443 输出数字除本身的所有因子和
39 1
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
54 1
|
5月前
|
机器学习/深度学习 人工智能
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。代码中包含求最大公约数的函数和计算有理数和的主要逻辑。
42 0
|
6月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-150 6-1 递归求二项式系数值
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-150 6-1 递归求二项式系数值
64 1
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-573 计算最小公倍数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-573 计算最小公倍数
24 0
|
6月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-2 算法训练 最大最小公倍数
45 0
|
6月前
|
算法 测试技术 C#
C++二分向量算法:最多可以参加的会议数目 II
C++二分向量算法:最多可以参加的会议数目 II
|
算法
代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串
代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串
49 0