COGS 13. 运输问题4

★★☆   输入文件:maxflowd.in   输出文件:maxflowd.out   简单对比
时间限制:1 s   内存限制:128 MB

【问题描述】
一个工厂每天生产若干商品,需运输到销售部门进行销售。从产地到销地要经过某些城镇,有不同的路线可以行走,每条两城镇间的公路都有一定的流量限制。公路设有收费站,每通过一辆车,要交纳过路费。请你计算,在不考虑其它车辆使用公路的前提下,如何使产地运输到销地的商品最多,并使费用最少。
【输入格式】
输入文件有若干行
第一行,一个整数n,表示共有n个城市(2<=n<=100),产地是1号城市,销地是n号城市
第二行,一个整数,表示起点城市
第三行,一个整数,表示终点城市
下面有n行,每行有2n个数字。第p行第2q1,2q列的数字表示城镇p与城镇q之间有无公路连接。数字为0表示无,大于0表示有公路,且这两个数字分别表示该公路流量和每车费用。
【输出格式】
输出文件有一行
第一行,1个整数n,表示最小费用为n。
【输入输出样例】
输入文件名: maxflowd.in
6
1
6
0 0 1 3 5 10 0 0 0 0 0 0 
0 0 0 0 0 0 5 7 0 0 0 0
0 0 0 0 0 0 0 0 2 8 0 0
0 0 0 0 1 3 0 0 0 0 3 5
0 0 2 4 0 0 0 0 0 0 2 6
0 0 0 0 0 0 0 0 0 0 0 0
输出文件名:maxflowd.out
63
裸费用流
屠龙宝刀点击就送
#include <cstdio>
#include <queue>
#define inf 0x7fffffff
#define N 105using namespace std;
bool vis[N];
int n,s,t,fa[N],dis[N],flow[N],cnt=1,head[N];
struct Edge
{int next,to,flow,cost;Edge (int next=0,int to=0,int flow=0,int cost=0) : next(next),to(to),flow(flow),cost(cost) {}
}edge[N*N];
inline void ins(int u,int v,int w,int l)
{edge[++cnt]=Edge(head[u],v,w,l);head[u]=cnt;
}
bool spfa(int s,int t)
{for(int i=s;i<=t;++i) vis[i]=0,flow[i]=inf,dis[i]=inf;dis[s]=0;fa[s]=0;queue<int>q;q.push(s);for(int now;!q.empty();){now=q.front();q.pop();vis[now]=0;for(int i=head[now];i;i=edge[i].next){int v=edge[i].to;if(dis[v]>dis[now]+edge[i].cost&&edge[i].flow){dis[v]=dis[now]+edge[i].cost;flow[v]=min(flow[now],edge[i].flow);fa[v]=i;if(!vis[v]){q.push(v);vis[v]=1; }}}}return dis[t]!=inf;
}
int dinic(int s,int t)
{int ans=0;for(;spfa(s,t);){int x=flow[t];for(int i=t;i!=s&&i;i=edge[fa[i]^1].to){edge[fa[i]].flow-=x;edge[fa[i]^1].flow+=x;}ans+=dis[t]*x;}return ans;
}
int main()
{freopen("maxflowd.in","r",stdin);freopen("maxflowd.out","w",stdout);scanf("%d%d%d",&n,&s,&t);for(int i=1;i<=n;++i)for(int a,b,j=1;j<=n;++j){scanf("%d%d",&a,&b);if(a&&b){ins(i,j,a,b);ins(j,i,0,-b);}}printf("%d\n",dinic(s,t));return 0;
}

 

转载于:https://www.cnblogs.com/ruojisun/p/7436145.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java –手工Classloader隔离

在最近的项目中&#xff0c;我们遇到了一个典型的库冲突问题 。 我们可以控制的一个组件需要特定版本的Apache Commons库&#xff0c;而另一个组件则需要一个不同的版本。 由于外部限制&#xff0c; 我们无法在Container级别指定任何类加载隔离 。 这不是我们的选择。 相反&…

【知识梳理1】Android触摸事件机制

前言 随着科学技术的发展&#xff0c;智能手机早已成为我们当代人身边不可缺少的“伙伴”之中的一个&#xff0c;堪比对象女友。每天我们对着手机反复的做着点击、滑动操作&#xff0c;而手机则随着我们的操作给我们展示她的精彩。… 废话到此结束。 看到这里&#xff0c;即使…

matlab if m不等于0,matlab问题clearfor a=0.1:0.1:50for b=0.1:0.1:20for m=0.1:0.1:5

来源&#xff1a;学生作业帮 编辑&#xff1a;作业帮 分类&#xff1a;综合作业 时间&#xff1a;2021/03/23 06:16:09matlab问题clearfor a0.1:0.1:50for b0.1:0.1:20for m0.1:0.1:5for k1:1:15n(a*m)/(2*b)-m^2;z4*k-a*m;x(4*k-a*m)/(4*k-2*b*(m^2n));y(4*k-a*m)/(4*k-2*b*m^…

自己做的一个登录页面,纯代码!

先上效果图吧. 本人菜鸟入门, 请勿喷. 首先样式: 1 1 body{2 2 margin: 0;3 3 padding: 0;4 4 width: 100%;5 5 height: 100%;6 6 }7 7 8 8 .headers{9 9 width: 100%;10 10 height: 100px;11 11 }12 12 .siv-ng{13 13 width:…

ASP.NET调用cmd命令提示符拒绝访问解决方案

using System.Diagnostics; public class CmdHelper{private static string CmdPath "C:\Windows\System32\cmd.exe";/// <summary>/// 执行cmd命令/// 多命令请使用批处理命令连接符&#xff1a;/// <![CDATA[/// &:同时执行两个命令/// |:将上一个命…

Java 7:Fork / Join框架示例

Java 7中的Fork / Join Framework专为可分解为较小任务的工作而设计&#xff0c;并将这些任务的结果组合起来以产生最终结果。 通常&#xff0c;使用Fork / Join Framework的类遵循以下简单算法&#xff1a; // pseudocode Result solve(Problem problem) {if (problem.size &…

php上传文件 服务器内部错误,php – 在将图像上传到S3时遇到内部服务器错误500...

在将图像上传到S3时我遇到了一个问题.我正在使用S3类和jqueryimageuploader插件.我已经设置了基本的应用程序,它在我的本地机器上运行良好.当我在beanstalk上部署它时,它开始抛出错误.我已经附加了控制台快照.我在这里添加我的代码供参考.这是启动文件index.html –gt;Meta cha…

Some reading, some thinking.

update&#xff1a;感谢助教0 0又学会一招&#xff0c;play 了一下CSS Part 1 Reading AuthorArticleNoteMadcola《两年波折路&#xff08;考研、工作、考研&#xff09;》"吾志所向&#xff0c;一往无前&#xff1b;愈挫愈奋&#xff0c;再接再励。"辜新星《时刻调…

CSS选择器:伪类(图文详解)

本文最初发表于博客园&#xff0c;并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我&#xff0c;一起入门和进阶前端。 以下是正文。 伪类&#xff08;伪类选择器&#xff09; 伪类&#xff1a;同一个标签&#xff0c;根据其不同的种状态&#xff0c;有不同的样式。…

了解播放过滤器API

随着Play 2.1的热销&#xff0c;很多人开始询问新的Play过滤器API。 实际上&#xff0c;API非常简单&#xff1a; trait EssentialFilter {def apply(next: EssentialAction): EssentialAction }本质上&#xff0c;过滤器只是一个执行一个动作并返回另一个动作的函数。 过滤器…

mybatis 使用merge into

前一篇博客&#xff0c;oracle的merge into语法 &#xff1a; oracle merge into语法 mybatis 使用merge into&#xff0c;跟一般的update写法相同&#xff1a; <update id"mergeinfo">merge into user_type ausing ( select #{name} as name, #{type} as type…

php getbyid,ThinkPHP查询中的魔术方法简述

我们在使用thinkphp开发的时候&#xff0c;有时候会用到getById(1)这个方法快速的获取一条信息的内容&#xff0c;这个方法比用where(" id 1 ")->find()好用多了&#xff0c;同时查询效率也比find快速。很多人在刚开始接触这个方法的时候&#xff0c;没有多留意它…

DIV固定宽度和动态拉伸混合水平排列

1.效果图 2.源代码 html <h2>1.头部固定&#xff0c;尾部拉伸</h2> <div class"container" id"div1"><div class"head"></div><div class"tail"></div> </div><h2>2.尾部固定…

bzoj1941 [Sdoi2010]Hide and Seek

Description 小猪iPig在PKU刚上完了无聊的猪性代数课&#xff0c;天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞&#xff0c;为了消除寂寞感&#xff0c;他决定和他的好朋友giPi&#xff08;鸡皮&#xff09;玩一个更加寂寞的游戏—捉迷藏。 但是&#xff0c;他们觉得…

ubuntu修改ssh服务的端口号

一、找到ssh配置文件位置 vim /etc/ssh/sshd_config 二、修改ssh登录端口号 修改 port 22 为 port xxxx 三、重启ssh服务 /etc/init.d/ssh restart转载于:https://www.cnblogs.com/javafucker/p/8521316.html

使用CSS设置JavaFX饼图样式

渲染图表时&#xff0c; JavaFX默认提供某些颜色。 但是&#xff0c;在某些情况下&#xff0c;您想自定义这些颜色。 在此博客文章中&#xff0c;我将使用一个示例来更改JavaFX饼图的颜色&#xff0c;该示例打算在今天下午在RMOUG Training Days 2013的演示中包括。一些基于Jav…

python列表去重效率,你应该知道的python列表去重方法

前言列表去重是写Python脚本时常遇问题&#xff0c;因为不管源数据来自哪里&#xff0c;当我们转换成列表的方式时&#xff0c;有可能预期的结果不是我们最终的结果&#xff0c;最常见的就是列表中元素有重复&#xff0c;这时候第一件事我们就要做去重处理。我们先来个最简单的…

java 错误: 找不到或无法加载主类

这个问题应该很常见的&#xff0c;笔者经常手工编译一些测试代码或者小工具&#xff0c;经常用到 javac和java来编译并运行一些简单的小工具。 以Hello World来测试。 HelloWorld.java public class HelloWorld{public static void main(String[]args){System.out.println(&quo…

HTML 表单 存为EXCEL文件时 中文显示乱码

在做宣传品发放系统时&#xff0c;需求要把数据库查询的记录生成表单并转存excel文件。 在转存的EXCEL文件中文显示乱码&#xff0c;表格和其他字符正常&#xff0c;检查后发现是创建EXCEL文件打开模式不对 之前&#xff1a; myfile fs.CreateTextFile(filename,true) 之后…

在Visual Studio Code中配置GO开发环境

一、GO语言安装 详情查看&#xff1a;GO语言下载、安装、配置 二、GoLang插件介绍 对于Visual Studio Code开发工具&#xff0c;有一款优秀的GoLang插件&#xff0c;它的主页为&#xff1a;https://github.com/microsoft/vscode-go 这款插件的特性包括&#xff1a; Colorizatio…