zoukankan      html  css  js  c++  java
  • P4016 负载平衡问题

    题目描述

    G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。

    输入格式

    文件的第 1 行中有 1 个正整数 n,表示有 n 个仓库。

    2 行中有 n 个正整数,表示 n 个仓库的库存量。

    输出格式

    输出最少搬运量。

    输入输出样例

    输入 #1
    5
    17 9 14 16 4
    输出 #1
    11

    说明/提示

    1≤n≤1001

    思路

    代码

    #include<bits/stdc++.h>
    using namespace std;
    long long n,a[105],sum,s[105];
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i],sum+=a[i];
        sum/=n;
        for(int i=1;i<=n;i++)a[i]-=sum,s[i]=s[i-1]+a[i];
        sort(s+1,s+n+1);
        sum=0;
        for(int i=1;i<=n;i++)sum+=abs(s[n/2+1]-s[i]);
        cout<<sum;
        return 0;
    }
  • 相关阅读:
    8.8集训
    8.7集训
    8.6集训
    poj 2492
    埃氏筛法
    并查集板子
    2018级程序能力实训第二次上机考试
    网络流
    活动安排问题
    等价类
  • 原文地址:https://www.cnblogs.com/wangyiding2003/p/11560269.html
Copyright © 2011-2022 走看看