zoukankan      html  css  js  c++  java
  • 物资传送 负载平衡

    问题 : 物资传送

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 15  解决: 7
    [提交][状态]

    题目描述

    从5月12日下午地震发生至今已经超过48小时,根据地震救灾的常识推算,未来24小时将是救灾最后的黄金时间。时间在无情的流逝,数以万计的灾民依旧命悬喘息之间。现在,数万军民正日夜奋战在抢救灾民第一线。从人员的组织协调到救灾物资的后援运输,每一个环节都直接关系到救灾的效果好坏。
    由于通往各灾区的道路完全中断,大批救援物资只好空投到各个灾区。某军区准备了一批物资, 恰好能均分到处于环形的N个灾区中。遗憾的是,由于余震不断,天气恶劣等原因,落到各灾区的数量不相同。
    正如***总理所一再强调的“抢救人的生命,是这次救灾工作的重中之重” 。为了保证救灾的效率不会平白消耗, 当地的民间救助组织可以选择将落到自己所在区的物资传送到左边或者右边相邻的灾区。为了公平起见,我们希望通过相邻灾区的相互传送,最终使所有的灾区获得相同数量的物资。假设一个物资从一个灾区传送到另一个灾区付出的代价是1, 问怎样进行传送,使得所付出的总代价最小。

    输入

    第一行: N    表示处于环形的灾区数
    接下来N行: 每行一个整数Ai,   表示第i个灾区得到的物质数量。

    输出

    输出只有一个数, 表示传送物资付出的最小总代价

    样例输入

    4
    1
    2
    5
    4

    样例输出

    4

    问题 : #6013. 「网络流 24 题」负载平衡

    时间限制: 1 Sec  内存限制: 256 MB
    提交: 4  解决: 4
    [提交][状态]

    题目描述

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

    输入

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

    输出

    输出最少搬运量。

    样例输入

    5
    17 9 14 16 4

    样例输出

    11

    提示

    1≤n≤100 1 leq n leq 100 1≤n≤100

    两个代码是相同的

    #include<stdio.h>
    #define N 10010
    int main()
    {
            int a[N],c[N];
            int n,i,m,ans,j,t;
            long long sum;
            while(scanf("%d",&n)!=EOF)
            {
                sum=0;ans=0;
                for(i=0;i<n;i++)
                {
                    scanf("%d",&a[i]);
                    sum+=a[i];
                }
                m=sum/n;
                c[0]=0;
                for(i=1;i<n;i++)
                {
                    c[i]=c[i-1]+a[i]-m;
                }
                for(i=0;i<n;i++)
                    for(j=0;j<n;j++)
                    {
                        if(c[i]<c[j])
                        {
                            t=c[i];
                            c[i]=c[j];
                            c[j]=t;
                        }
                    }
                i=0;j=n-1;
                while(i<j)
                {
                    ans+=c[j]-c[i];
                    i++;
                    j--;
                }
                printf("%d
    ",ans);
            }
            return 0; 
    } 
  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10003075.html
Copyright © 2011-2022 走看看