P3381

news/2024/10/22 13:31:13

最后还是照着题解A了这道题……

#include <bits/stdc++.h>
using namespace std;
int n,m,s,t,edge_sum=1;
int maxflow,mincost;
int dis[5005],head[5005],incf[5005],pre[5005];
bool vis[5005];
struct Edge {int next,to,dis,flow;
}edge[1000005];
inline void addedge(int from,int to,int flow,int dis) {edge[++edge_sum].next=head[from];edge[edge_sum].to=to;edge[edge_sum].dis=dis;edge[edge_sum].flow=flow;head[from]=edge_sum;
}
inline bool spfa() {queue <int> q;memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));q.push(s);dis[s]=0;vis[s]=1;incf[s]=1 << 30;while(!q.empty()) {int u=q.front();vis[u]=0;q.pop();for(register int i=head[u];i;i=edge[i].next) {if(!edge[i].flow) continue;int v=edge[i].to;if(dis[v]>dis[u]+edge[i].dis) {dis[v]=dis[u]+edge[i].dis;incf[v]=min(incf[u],edge[i].flow);//更新incfpre[v]=i;if(!vis[v]) vis[v]=1,q.push(v);}}}if(dis[t]==1061109567) return 0;return 1;
}
inline void MCMF() {while(spfa()) {int x=t;maxflow+=incf[t];mincost+=dis[t]*incf[t];int i;while(x!=s) {edge[i].flow-=incf[t];edge[i^1].flow+=incf[t];x=edge[i^1].to;}}
}
signed main() {scanf("%d%d%d%d",&n,&m,&s,&t);for(register int u,v,w,x,i=1;i<=m;++i) {scanf("%d%d%d%d",&u,&v,&w,&x);addedge(u,v,w,x);addedge(v,u,0,-x);}MCMF();printf("%d %d\n",maxflow,mincost);return 0;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

习题2.7

习题2.7代码 import numpy as np import pandas as pd import sympy as sp sp.init_printing(use_unicode=True) import matplotlib.pyplot as plt plt.rcParams[font.sans-serif]=[Times New Roman + SimSun + WFM Sans SC] plt.rcParams[mathtext.fontset]=cm Times New Roma…

玩转博客园

收集一些优化博客园的帖子博客园美化主题推荐之Bili https://www.cnblogs.com/AhuntSun-blog/p/12342443.html 博客园 复制他人的博客模板(皮肤) https://www.cnblogs.com/abadcat97/p/14146475.html

C语言中的初始化是什么意思

在C语言中,初始化是指在定义变量时为其赋予初值的过程。通过初始化,可以确保变量在使用之前具有已知的初始值,避免了未初始化变量的不确定行为。初始化可以在变量定义时直接赋值,也可以通过赋予默认值或调用特定的初始化函数来完成。C语言中的初始化 在C语言中,初始化是指…

从事项目管理的朋友们,是如何有效管理项目进度

从事项目管理的專业人士,优化和管理项目进度的有效方法和技巧主要包括以下几点:•创建详细的项目时间表、•分配和优化资源、•设定和跟踪进度基准、•实施有效的团队沟通及•积极应对和管理风险。 首先让我们详细讨论创建详细的项目时间表。针对任何新的项目或任务,首要步骤…

习题2.13

习题2.13代码 import numpy as np import pandas as pd import sympy as sp sp.init_printing(use_unicode=True) import matplotlib.pyplot as plt plt.rcParams[font.sans-serif]=[Times New Roman + SimSun + WFM Sans SC] plt.rcParams[mathtext.fontset]=cm Times New Rom…

习题2.12

习题2.12代码 import numpy as np import pandas as pd import sympy as sp sp.init_printing(use_unicode=True) import matplotlib.pyplot as plt plt.rcParams[font.sans-serif]=[Times New Roman + SimSun + WFM Sans SC] plt.rcParams[mathtext.fontset]=cm Times New Rom…

React和Vue哪个更适合前端开发

在前端开发领域,React和Vue一直是两大热门框架。本文深入对比两者在不同维度的表现,包括:1. 设计理念和学习曲线;2. 数据绑定;3. 组件化;4. 生态系统和工具;5. 性能;6. 社区支持;7. 企业采用和工作机会。通过全面的比较分析,我们可以发现React和Vue各有优势,选择哪一…