贪心做法

第一眼看见觉得和均分纸牌差不多,然而因为这是环形的,并不能用均分纸牌的方法做,但是均分纸牌的思想仍然适用

首先我们假设平均数为sum1。

那么对于第1个人,我们假设他给第N个人K个糖果,

第2个人给1

第3个人给2

第n个人给第n-1个人

那么对于第1个人给完n,第2个人给完1,第一个人不会再改变糖果数了

所以应该是sum1那么第一个人原来是a1

给n之后是a1-k,代价是k,

第2个人给1,使1的糖果数是sum1,所以应该给sum1-a1+k个,代价是 \(abs(sum1+k-a1)=abs(a1-k-sum1)\) ,那么第2个人变成了 \(a2+a1-k-sum1\) 个

、第3个人需要给2个人 \(sum1-a2-a1+k+sum1=2*sum1-a1-a2+k\) 个,那么代价是 \(abs(2*sum1-a1-a2+k)=abs(a1+a2-k-2*sum1)\)

以此类推第n个人给第n-1个人,代价应为 \(abs((a1+a2+……+an-1)-k-(n-1)*sum1)\),

那么第一个人给第n个人的代价k可以看成\(abs((a1+a2+……+an)-k-n*sum1)\),

所以我们设 \(b[i]=Σ(a[j])-i*sum1 j<=i\) 那么 4max=Σ(b[i]-k)$

那么b[i]是定值,和k无关,我们可以求出来,

就是求max的最小值了,

那么k应该是b[i]数组中的中位数,用数轴判断

可以使max最小我们要找的就是sum的中位数,快排下就好了

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,tot,num[105];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>num[i];
tot+=num[i];
}
tot/=n;
for(int i=1;i<=n;i++) num[i]+=num[i-1]-tot;
sort(num+1,num+1+n);
tot=n%2?num[n/2+1]:(num[n/2]+num[n/2+1])/2;
int ans=0;
for(int i=1;i<=n;i++) ans+=abs(num[i]-tot);
cout<<ans<<endl;
return 0;
}

网络流做法

最小费用最大流

转换成供求平衡问题,待续...

洛谷 [P4016] 负载平衡问题的更多相关文章

  1. 洛谷 P4016负载平衡问题【费用流】题解+AC代码

    洛谷 P4016负载平衡问题 P4014 分配问题[费用流]题解+AC代码 负载平衡问题 题目描述 GG 公司有n个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 n ...

  2. (洛谷P2512||bzoj1045) [HAOI2008]糖果传递 || 洛谷P4016 负载平衡问题 || UVA11300 Spreading the Wealth || (洛谷P3156||bzoj3293) [CQOI2011]分金币

    bzoj1045 洛谷P4016 洛谷P2512 bzoj3293 洛谷P3156 题解:https://www.luogu.org/blog/LittleRewriter/solution-p251 ...

  3. 洛谷P4016负载平衡

    题目 负载平衡问题是一个比较经典的网络流问题,但是该问题还有一个数学贪心法. 所以做这个题前,其实可以做一下均分纸牌问题. 均分纸牌问题 均分纸牌问题可以说是作为贪心的入门题. 做法 首先我们应当把原 ...

  4. 洛谷P4016 负载平衡问题(费用流)

    传送门 嗯……完全不会……不过题解似乎讲的挺清楚…… 考虑一下,每一个仓库最终肯定都是平均数,所以数量大于平均数的可以往外运,小于平均数的要从别的地方运进来 考虑建一个超级源$S$和超级汇$T$,并把 ...

  5. 洛谷P4016 负载平衡问题

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

  6. 洛谷 P4016 负载平衡问题 【最小费用最大流】

    求出平均数sum,对于大于sum的点连接(s,i,a[i]-sum,0),表示这个点可以流出多余的部分,对于小于sum的点连接(i,t,sum-a[i],0)表示这个点可以接受少的部分,然后每个点向相 ...

  7. 洛谷P4016 负载平衡问题(最小费用最大流)

    题目描述 GG 公司有 nn 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 nn 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬运. 输入输出格式 输入格 ...

  8. 洛谷P4016 负载平衡问题 费用流

    这道题还是很好的. 考察了选手对网络流的理解. 首先,任意两个相邻点之间的运货量时没有限制的. 我们可以将相邻点之间的流量建为无限大,单位费用设为 1,代表运输一个货物需耗费一个代价. 由于题目要求最 ...

  9. 『题解』洛谷P4016 负载平衡问题

    title: categories: tags: - mathjax: true --- Problem Portal Portal1:Luogu Portal2: LibreOJ Descripti ...

随机推荐

  1. 解决在SecurecCRT登录后,发现方向键、backspace(退格键)、delete(删除键)为乱码的问题

    问题:使用securecrt ssh到linux之后,backspace(退格键),delete(删除键),以及4个方向键都为乱码,不能正常使用.按tab键也没有自动补全文件名. 即: 按Backsp ...

  2. div排版+文档流+定位秘诀

    由于没有找到自己认为完整的关于普通流.浮动和绝对定位的中文文章,于是鼓起勇气决定自己来写篇. 在普通流中的 Box(框) 属于一种 formatting context(格式化上下文) ,类型可以是 ...

  3. 将简单的lambda表达式树转为对应的sqlwhere条件

    1.Lambda的介绍 园中已经有很多关于lambda的介绍了.简单来讲就是vs编译器给我带来的语法糖,本质来讲还是匿名函数.在开发中,lambda给我们带来了很多的简便.关于lambda的演变过程可 ...

  4. IOS safari浏览器登陆时Cookie无法保存的问题

    近期完成了一个儿童的测评项目,测试到最后的时候发现在ipad mini上登陆成功之后无法跳转页面,而安卓和pc端都可以,找了大半天bug,发现其他的苹果设备都没问题,只能一个一个的调试,结果发现设备的 ...

  5. 关于vue的使用计算属性VS使用计算方法的问题

    在vue中需要做一些计算时使用计算属性和调用methods方法都可以达到相同的效果,那么这两种使用方式的区别在哪里: <div id="example"> <p& ...

  6. 数据结构与算法(1)----->排序

    这一版块,把必备的数据结构和算法做一个总结!包括排序.队列.链表.二叉树.排组合,动态规划....... 总结的过程包括理论部分,练题目可以自己去leetcode/牛客网刷起来- 第一篇文章讲排序- ...

  7. 2017-6-14 踩坑小结(Android文件读写 相关问题)

    填坑 getSlotFromBufferLocked: unknown buffer: 0xab7115e0 1. 在棉花糖(6.0)上莫名出现 未知缓冲 错误,百度了一下,貌似这个是Android6 ...

  8. 立即掌握SSM框架的要诀

    ssm框架的总结: 1. 首先是POM.xml 文件的配置,他的作用主要是添加依懒的关系和自动下载相关的包. 2.对jdbc.properties进行配置 ,作用就是连接你的数据库的配置. 3.对接着 ...

  9. 使用bat将优盘中的dig加到系统环境变量

    第一次使用bat批处理,记录下,方便查阅. @echo off::当前盘符set curPath=%cd%set digPath ="%curPath%tool\dig"set P ...

  10. Angular 2 前端 http 传输 model 对象及其外键的问题

    个人随笔,记录问题及思路草稿,非文章性质.     对于设备编辑场景,需要显示设备类型(外键),   前端有如下 TypeScript model(此 model 和后端实体 model 通常相对应) ...