P3381 【模板】最小费用最大流

P3381 【模板】最小费用最大流

P3381 【模板】最小费用最大流

#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<queue> using namespace std; struct node { int point; int value; int flow; int nxt; }; node line[200000]; int head[10010],tail=-1; void add(int x,int y,int z,int k) { line[++tail].point=y; line[tail].value=k; line[tail].flow=z; line[tail].nxt=head[x]; head[x]=tail; } int max_flow,min_spent; int dis[10010],flow[10010],last[10010]; bool inque[10010]; int pre[10010]; bool SPFA(int begin,int end) { memset(dis,127,sizeof(dis)); memset(inque,0,sizeof(inque)); memset(flow,127,sizeof(flow)); queue<int>q; q.push(begin); inque[begin]=true; pre[end]=-1; dis[begin]=0; while(!q.empty()) { int pas=q.front(); q.pop(); inque[pas]=false; for(int i=head[pas];i!=-1;i=line[i].nxt) if(line[i].flow>0&&dis[line[i].point]>dis[pas]+line[i].value) { dis[line[i].point]=dis[pas]+line[i].value; pre[line[i].point]=pas; last[line[i].point]=i; flow[line[i].point]=min(line[i].flow,flow[pas]); if(!inque[line[i].point]) { q.push(line[i].point); inque[line[i].point]=true; } } } if(pre[end]==-1) return false; return true; } void EK(int begin,int end) { while(SPFA(begin,end)) { int pas=end; max_flow+=flow[end]; min_spent+=dis[end]*flow[end]; while(pas!=begin) { line[last[pas]].flow-=flow[end]; line[last[pas]^1].flow+=flow[end]; pas=pre[pas]; } } } int main() { int n,m,s,t; scanf("%d%d%d%d",&n,&m,&s,&t); for(int i=1;i<=n;i++) head[i]=-1; int a,b,c,d; for(int i=1;i<=m;i++) { scanf("%d%d%d%d",&a,&b,&c,&d); add(a,b,c,d); add(b,a,0,-1*d); } EK(s,t); printf("%d %d",max_flow,min_spent);; }

转载于:https://www.cnblogs.com/Lance1ot/p/9037905.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101663.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ps切图怎么做成html,PS切图怎么导出网页 PS切图怎么生成源代码

    ps切图怎么做成html,PS切图怎么导出网页 PS切图怎么生成源代码PS切片工具切出来的切图可怎么导出网页?PS切图怎么生成源代码?PS切片的网址和源代码功能在PS切片的编辑功能里,添加URL地址,切片存储为WEB所有格式,优化存储结果保存成“HTML和图像”或者“仅HTML”。这样保存出来的切片就是网页的图片,带有源代码功能。下面来看看PS切图导出网页和生成源代码的图文教程。PS切片怎么添加网址1、直接找一张图片来,用PS打开,将需要添加的键的图像切出来,选择切…

    2025年6月29日
    3
  • 不能复制文字的网页文字复制怎么办_html循环粘贴

    不能复制文字的网页文字复制怎么办_html循环粘贴网页无法复制文字怎么办?当我们在电脑上需要复制某个网页上的文字时,发现我们不能选择复制粘贴文字,那这种情况该怎么解决呢,网页无法复制文字怎么办,怎么解决网页无法复制粘贴文字情况,下面就和小编一起来看看吧!1.可以使用谷歌浏览器扩展程序AllowCopy解决问题,打开谷歌浏览器的网上应用店,搜索【AllowCopy】;2.然后找到SimpleAllowCopy,点击【添加至Chrome】将其…

    2022年10月9日
    3
  • HTML+CSS美食静态网页设计

    HTML+CSS美食静态网页设计爱尚美食网页用AdobeDreamweaverCS6制作代码如下:HTML代码:<!DOCTYPEhtml><html><head><metacharset=utf-8″/><title>爱尚美食</title><!–链接图片及css–><linkrel=”…

    2022年9月23日
    3
  • 重磅!2021年国内Java培训机构排名前十最新出炉啦

    重磅!2021年国内Java培训机构排名前十最新出炉啦2021年国内Java培训机构排名前十的学校会是哪些呢?国内Java培训机构排名前十名该依据什么来评定呢?2021年国内Java培训机构排行榜排名的依据是按学员口碑、教学质量、就业率等多方面来进行评判,这次的排名是官方发布,具有权威性、公正性,可参考意义很强。下面,就为大家揭晓2021年最新的国内Java培训机构排名,这些机构在此次的评选活动中的得分又是多少呢。1、动力节点动力节点是成立于2009年,成立时间比较长,到现在为止还是只做Java单科教育,从动力节点毕业的程序员说讲的不错,创始人

    2022年7月7日
    1.1K
  • 欧式距离、标准化欧式距离、马氏距离、余弦距离

    欧式距离、标准化欧式距离、马氏距离、余弦距离目录欧氏距离标准化欧氏距离马氏距离夹角余弦距离汉明距离曼哈顿(Manhattan)距离1.欧式距离欧式距离源自N维欧氏空间中两点x1,x2x1,x2x_1,x_2间的距离公式:d=∑i=1N(x1i−x2i)2‾‾‾‾‾‾‾‾‾‾√d=∑i=1N(x1i−x2i)2d=\sum_{i=1}^N\sqrt{(x_{1i}-x_{2i})^2}2.标准化…

    2022年6月19日
    21
  • 如何完成域名和ip地址的绑定

    如何完成域名和ip地址的绑定

    2021年9月20日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号