题目描述

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

源点连所有仓库容量为初始货量费用为0,所有仓库联想汇点容量为平均货量费用为0。所有仓库都与他相邻仓库

连一容量为INF费用为的边。求一遍最小费用最大流。

#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;
const int maxm = 10005;
const int maxn = 100005;
const int INF = 1e9 + 7;
struct node
{int u, v, flow, cost, next;
}edge[maxn];
int dis[maxm], head[maxm], cur[maxm], pre[maxn], f[1005][1005], map[1005][1005];
int s, t, n, m, cnt;
void init()
{cnt = 0, s = 0, t = n + 1;memset(head, -1, sizeof(head));
}
void add(int u, int v, int w, int cost)
{edge[cnt].u = u, edge[cnt].v = v;edge[cnt].flow = w, edge[cnt].cost = cost;edge[cnt].next = head[u], head[u] = cnt++;edge[cnt].u = v, edge[cnt].v = u;edge[cnt].flow = 0, edge[cnt].cost = -cost;edge[cnt].next = head[v], head[v] = cnt++;
}
int bfs()
{queue<int>q;for (int i = 0;i <= 10004;i++) dis[i] = INF;memset(pre, -1, sizeof(pre));dis[s] = 0;q.push(s);int rev = 0;while (!q.empty()){int u = q.front();q.pop();for (int i = head[u];i != -1;i = edge[i].next){int v = edge[i].v;if (dis[v] > dis[u] + edge[i].cost&&edge[i].flow){dis[v] = dis[u] + edge[i].cost;pre[v] = i;q.push(v);}}}if (dis[t] == INF) return 0;return 1;
}
int MCMF()
{int minflow, ans = 0;while (bfs()){minflow = INF;for (int i = pre[t];i != -1;i = pre[edge[i].u])minflow = min(minflow, edge[i].flow);for (int i = pre[t];i != -1;i = pre[edge[i].u]){edge[i].flow -= minflow;edge[i ^ 1].flow += minflow;}ans += minflow*dis[t];}return ans;
}
int main()
{int i, j, k, sum = 0, id = 0, x;scanf("%d", &n);init();for (i = 1;i <= n;i++){scanf("%d", &k);add(s, i, k, 0);sum += k;}x = sum / n; for (i = 1;i <= n;i++){add(i, t, x, 0);add(i, i%n + 1, INF, 1);add(i%n + 1, i, INF, 1);}printf("%d\n", MCMF());return 0;
}

「网络流 24 题」负载平衡相关推荐

  1. 「网络流24题」 题目列表

    「网络流24题」 题目列表 序号 题目标题 模型 题解 1 飞行员配对方案问题 二分图最大匹配 <1> 2 太空飞行计划问题 最大权闭合子图 <2> 3 最小路径覆盖问题 二分 ...

  2. 「网络流24题」 12. 软件补丁问题

    「网络流24题」 12. 软件补丁问题 状压 DP,SPFA 转移. 没错,跟网络流没任何关系. b1.b2.f1.f2 都用二进制存下来,第 i 位表示是否有这个错误. 然后从每位都是 1 到 0 ...

  3. loj #6226. 「网络流 24 题」骑士共存问题

    #6226. 「网络流 24 题」骑士共存问题 题目描述 在一个 n×n\text{n} \times \text{n}n×n 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些 ...

  4. liberOJ#6006. 「网络流 24 题」试题库 网络流, 输出方案

    #6006. 「网络流 24 题」试题库   题目描述 假设一个试题库中有 n nn 道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取 m mm 道题组成试卷.并要求试卷 ...

  5. LibreOJ #6001. 「网络流 24 题」太空飞行计划 最大权闭合图

    #6001. 「网络流 24 题」太空飞行计划 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测 ...

  6. LOJ6001 - 「网络流 24 题」太空飞行计划

    原题链接 Description 有m(m≤50)个实验和n(n≤50)个仪器,做实验有报酬买仪器有花费.每个实验都需要一些仪器,求最大净收益(实验报酬−仪器花费),并输出一组方案. Solution ...

  7. LibreOJ 6004. 「网络流 24 题」圆桌聚餐 网络流版子题

    #6004. 「网络流 24 题」圆桌聚餐 内存限制:256 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数 ...

  8. loj #6004. 「网络流 24 题」圆桌聚餐(最大流)

    #6004. 「网络流 24 题」圆桌聚餐 内存限制:256 MiB时间限制:5000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数 ...

  9. 「网络流24题」试题库问题

    传送门:>Here< 题意:有K种类型的共N道试题用来出卷子,要求卷子须有M道试题.已知每道题属于p种类型,每种类型的试题必须有且仅有k[i]道.现问出这套试卷的一种具体方案 思路分析 昨 ...

  10. 流网络的最小割问题c语言,「网络流24题」最小路径覆盖问题

    Description 问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任 ...

最新文章

  1. 点云关键算法详解及实战剖析正式开讲!(涉及分割、配准、关键点、识别、重建等)...
  2. 大型分布式网站架构技术总结
  3. Eclipse java项目转换为web项目
  4. java面试 socket_【面试题】Java 的通信编程,编程题(或问答),用JAVA SOCKET 编程,读服务器几个字符,再写入本地显示?...
  5. 论文浅尝 - AAAI2020 | 小样本知识图谱补全
  6. 【数据结构与算法】二项队列与二叉堆的比较
  7. 测试加减乘除c语言,科学网-一个C语言加减乘除的小程序-杜波的博文
  8. python常问问题_Python新手在作用域方面经常容易碰到的问题
  9. MySQL的select语法
  10. 服务器如何安装虚拟声卡,虚拟声卡驱动VirtualAudioCable安装使用设置教程
  11. 最新可用快手极速版自动阅读薅羊毛autojs脚本
  12. elementui日历组件实现可标记日历
  13. Helm模版开发文档
  14. 服务器不能创建对象教务系统,[转]解决强智教务系统非IE下无法创建对象错误...
  15. PPT倒计时制作技巧及模板素材下载
  16. linux 自动降频,Linux资格认证:Ubuntu下对CPU进行降频
  17. 使用KEPWARE软件采用FOCAS协议读取数控机床数据(含地址表)
  18. python爬虫爬取豆瓣电影排行榜,并写进csv文件,可视化数据分析
  19. JAVA常见的命名规则:见名知意
  20. 推荐一款专业制作手机铃声的音乐剪辑器?

热门文章

  1. 踩坑内核参数tcp_tw_recycle
  2. 科学家计算机模拟宇宙,科学家利用计算机模拟整个宇宙的演化
  3. 手把手教你用ls-dyna做入水冲击荷载仿真分析(一)大体介绍
  4. idea上传新项目至svn仓库
  5. UI自动化测试工具-国产和国外
  6. 汽车VIN码超详细解析规则
  7. php 读取excel表数据
  8. 网易云音乐直链提取及下载
  9. 行为型设计模式:模板模式
  10. 想找一些外文文献,有哪些靠谱的外文文献网站推荐?