loj #6013. 「网络流 24 题」负载平衡
#6013. 「网络流 24 题」负载平衡
题目描述
G 公司有 n nn 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n nn 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。
输入格式
文件的第 1 11 行中有 1 11 个正整数 n nn,表示有 n nn 个仓库。
第 2 22 行中有 n nn 个正整数,表示 n nn 个仓库的库存量。
输出格式
输出最少搬运量。
样例
样例输入
5
17 9 14 16 4
样例输出
11
数据范围与提示
1≤n≤100 1 \leq n \leq 1001≤n≤100
思路:首先求出平均数,因为物资流动的最终结果是每个仓库的货物数目相同,就是每个仓库货物数目达到平均数。
然后环形仓库可以向两边搬运,所以固定一个方向,就是a[i] - >a[i+1]吧,并记录搬运数量为c[i]。所以c[i]就表示货物由第i个仓库搬到第i+1仓库的数量,负数表示i+1仓库往第i个仓库搬货。然后根据a[i]+c[i]-c[i-1]==m,可以求出每个仓库的货物搬动数量。
接下来就是处理搬运货物的总量最小,就是∑|c[i]| (i=0…n-1)最小。拿回原题意语境中我们可以知道c[i] (i=0,1,2…n-1)是相互影响的,但是它们的相对大小不会改变,所以我们现在可以把问题转化为一个数学题,就是把c[i]固定在一个数轴上,然后确定一个原点,保证绝对值之和最小即可。
然后就可以发现将原点固定在c[0]-c[n]最中间的位置(物理位置中间,就是原点左右两边数目尽可能相同)时绝对值之和时最小的。因为c[i] (i=0,1,2…)是相互影响的,又因相对大小不会改变,所以我们可以把c[0]随便赋一个值,然后就可以把c[i]的相对值都求出来了。
#include<iostream> #include<cstdio> #include<algorithm> #define maxn 110 using namespace std; int a[maxn],c[maxn],n,m; int main(){long long sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i];}m=sum/n;c[0]=0;for(int i=2;i<=n;i++)c[i]=c[i-1]+a[i]-m;sort(c+1,c+n+1);int mn=0;for(int i=1,j=n;i<j;i++,j--)mn+=c[j]-c[i];printf("%d",mn);return 0; }
转载于:https://www.cnblogs.com/thmyl/p/8953586.html
loj #6013. 「网络流 24 题」负载平衡相关推荐
- loj #6226. 「网络流 24 题」骑士共存问题
#6226. 「网络流 24 题」骑士共存问题 题目描述 在一个 n×n\text{n} \times \text{n}n×n 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些 ...
- loj #6004. 「网络流 24 题」圆桌聚餐(最大流)
#6004. 「网络流 24 题」圆桌聚餐 内存限制:256 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数 ...
- 【刷题】LOJ 6011 「网络流 24 题」运输问题
题目描述 W 公司有 \(m\) 个仓库和 \(n\) 个零售商店.第 \(i\) 个仓库有 \(a_i\) 个单位的货物:第 \(j\) 个零售商店需要 \(b_j\) 个单位的货物.货物供需平衡, ...
- LOJ#6002. 「网络流 24 题」最小路径覆盖
模板. 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 //#include<ti ...
- 【刷题】LOJ 6014 「网络流 24 题」最长 k 可重区间集
题目描述 给定实直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取出开区间集合 \(S \subseteq ...
- 【刷题】LOJ 6005 「网络流 24 题」最长递增子序列
题目描述 给定正整数序列 \(x_1 \sim x_n\) ,以下递增子序列均为非严格递增. 计算其最长递增子序列的长度 \(s\) . 计算从给定的序列中最多可取出多少个长度为 \(s\) 的递增子 ...
- 「网络流24题」 题目列表
「网络流24题」 题目列表 序号 题目标题 模型 题解 1 飞行员配对方案问题 二分图最大匹配 <1> 2 太空飞行计划问题 最大权闭合子图 <2> 3 最小路径覆盖问题 二分 ...
- LibreOJ #6001. 「网络流 24 题」太空飞行计划 最大权闭合图
#6001. 「网络流 24 题」太空飞行计划 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测 ...
- LibreOJ 6004. 「网络流 24 题」圆桌聚餐 网络流版子题
#6004. 「网络流 24 题」圆桌聚餐 内存限制:256 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数 ...
- 「网络流24题」 12. 软件补丁问题
「网络流24题」 12. 软件补丁问题 状压 DP,SPFA 转移. 没错,跟网络流没任何关系. b1.b2.f1.f2 都用二进制存下来,第 i 位表示是否有这个错误. 然后从每位都是 1 到 0 ...
最新文章
- ajax 加载 提示 锁屏,js锁屏解屏通过对$.ajax进行封装实现
- 把度分秒的经纬度转换成十进制的经纬度的工具类
- 数据结构(Data structures)(二):结构体指针
- 国科大高级人工智能笔记1-搜索
- 第28课 叮叮当当 《小学生C++趣味编程》
- Win10中docker安装nuget服务器及使用
- Requirements Analysis with 'pseud-Formal' Method
- 中国网和七牛云达成战略合作,携手打造国际化融媒中心
- (EasyX入门与实战)第五章 添加音乐
- 华为数通HCNP学习历程分享
- 拼多多联盟-使用pid和custom_parameters进行备案
- python爬虫re+requests+bs4爬取汽车之家全部过程,附代码。支持互联网免费至上,看了全部关于汽车之家的文章都是收费的,我很看不过去
- 【编译原理】实验二 词法分析程序
- Leecode:数组中的最长山脉
- 阿星 centos7卸载mysql并且通过yum安装mysql
- 极路由更新软件源的方法
- java 内部接口 内部类_Java接口/内部类
- 2020总结:软件工程,由分析需求到立项到测试再到?
- 彼岸花开开彼岸,奈何桥前怎奈何
- 通用连挖苹果工程师只为云计算