【模板】最小费用最大流 原创 fish04 2022-05-27 20:29:54 博主文章分类:网络流 ©著作权 文章标签 #include #define 最大流 文章分类 后端开发 ©著作权归作者所有:来自51CTO博客作者fish04的原创作品,请联系作者获取转载授权,否则将追究法律责任 题目描述如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。输入输出格式输入格式:第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。接下来M行每行包含四个正整数ui、vi、wi、fi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi),单位流量的费用为fi。输出格式:一行,包含两个整数,依次为最大流量和在最大流量情况下的最小费用。输入输出样例输入样例#1:复制4 5 4 34 2 30 24 3 20 32 3 20 12 1 30 91 3 40 5输出样例#1: 复制50 280说明时空限制:1000ms,128M(BYX:最后两个点改成了1200ms)数据规模:对于30%的数据:N<=10,M<=10对于70%的数据:N<=1000,M<=1000对于100%的数据:N<=5000,M<=50000样例说明:如图,最优方案如下:第一条流为4-->3,流量为20,费用为3*20=60。第二条流为4-->2-->3,流量为20,费用为(2+1)*20=60。第三条流为4-->2-->1-->3,流量为10,费用为(2+9+5)*10=160。故最大流量为50,在此状况下最小费用为60+60+160=280。故输出50 280。 模板:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include//#include//#pragma GCC optimize("O3")using namespace std;#define maxn 200005#define inf 0x3f3f3f3f#define INF 999999999999999#define rdint(x) scanf("%d",&x)#define rdllt(x) scanf("%lld",&x)#define rdlf(x) scanf("%lf",&x)#define rdstr(x) scanf("%s",x)typedef long long ll;typedef unsigned long long ull;typedef unsigned int U;#define ms(x) memset((x),0,sizeof(x))const int mod = 10000007;#define Mod 20100403#define sq(x) (x)*(x)#define eps 1e-5typedef pair pii;#define pi acos(-1.0)const int N = 1005;#define REP(i,n) for(int i=0;i<(n);i++)inline int rd() { int x = 0; char c = getchar(); bool f = false; while (!isdigit(c)) { if (c == '-') f = true; c = getchar(); } while (isdigit(c)) { x = (x << 1) + (x << 3) + (c ^ 48); c = getchar(); } return f ? -x : x;}ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a%b);}ll sqr(ll x) { return x * x; }bool vis[maxn];int n, m, s, t;int x, y, f, z;int dis[maxn], pre[maxn], last[maxn], flow[maxn];int maxflow, mincost;struct node { int to, nxt, flow, dis;}edge[maxn<<2];int head[maxn], cnt;queueq;void addedge(int from, int to, int flow, int dis) { edge[++cnt].to = to; edge[cnt].flow = flow; edge[cnt].dis = dis; edge[cnt].nxt = head[from]; head[from] = cnt;}bool spfa(int s, int t) { memset(dis, 0x7f, sizeof(dis)); memset(flow, 0x7f, sizeof(flow)); ms(vis); q.push(s); vis[s] = 1; dis[s] = 0; pre[t] = -1; while (!q.empty()) { int now = q.front(); q.pop(); vis[now] = 0; for (int i = head[now]; i != -1; i = edge[i].nxt) { if (edge[i].flow > 0 && dis[edge[i].to] > dis[now] + edge[i].dis) { dis[edge[i].to] = edge[i].dis + dis[now]; pre[edge[i].to] = now; last[edge[i].to] = i; flow[edge[i].to] = min(flow[now], edge[i].flow); if (!vis[edge[i].to]) { vis[edge[i].to] = 1; q.push(edge[i].to); } } } } return pre[t] != -1;}void mincost_maxflow() { while (spfa(s, t)) { int now = t; maxflow += flow[t]; mincost += flow[t] * dis[t]; while (now != s) { edge[last[now]].flow -= flow[t]; edge[last[now] ^ 1].flow += flow[t]; now = pre[now]; } }}int main(){ //ios::sync_with_stdio(false); memset(head, -1, sizeof(head)); cnt = 1; rdint(n); rdint(m); rdint(s); rdint(t); for (int i = 1; i <= m; i++) { rdint(x); rdint(y); rdint(z); rdint(f); addedge(x, y, z, f); addedge(y, x, 0, -f); } mincost_maxflow(); cout << maxflow << ' ' << mincost << endl; return 0;} EPFL - Fighting 赞 收藏 评论 分享 举报 上一篇:[USACO07MAR]黄金阵容均衡Gold Balanced L… map 下一篇:【模板】二分图匹配 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 求1+2!+3!+…+20!的和 下面我将分别用C语言和Python来编写计算1+2!+3!+...+20!的和的程序。C语言版本C语言中没有直接的阶乘函数,所以我们需要自己编写一个计算阶乘的函数。c复制代码 #include <stdio.h> // 计算阶乘的函数 long long factorial(int n) { long long result = 1; Python i++ 简洁性 【Canvas与函数极值】当x>0时,求x^2-x+1/x的最小值? 当x>0时,求x^2-x+x^-1的最小值?本文将用配方法、导数法和绘图法解决。 canvas 极值 配方法 导数 网络隔离的最小配置 作者:任云康,青云科技研发工程师前言对于项目下的网络隔离,有用户提出了以下疑问:网络隔离是针对 Pod 的吗?网络隔离的最小配置是什么?配置后,哪些是可以访问的,哪些是不可以访问的?通过 Ingress 暴露、LB 类型的 Service 暴露、NodePort 类型的 Service 暴露的流量的具体链路是什么样的?KubeSphere 网络策略的实现思路KubeSphere 对于 Netwo 网络隔离 k8s kubesphere kuernetes loadbalance 最小费用流MATLAB (1)r1=15;x=[1,1,2,2,3,3,4,4,5,5,6,7];y=[2,3,4,5,4,6,5,7,6,7,7,7];w=[20,14,15,12,10,13,8,r1,8,10,12,0];DG = sparse(x,y,w);[dist,path,pred] = graphshortestpath(DG,1,7)% biograph生成图对象,view显示该图point_name 最短路径 句柄 出点 【最小费用可行流模板】 可能再也用不到了吧,今天整理电脑文件看到的,作为图论选手,留个纪念,//原图: 对于pi,拆点xi,yi s->S,[m,m],0 S->xi,[0,inf],0 yi->t,[0,inf],0 xi->yi,[vi,vi],0 对于有航线的pi和pj,yi->xj,[0,inf],cost//这样就建好了原图 那么有源汇有上下界的费用流的改造方法: 首先... #include i++ #define 最小费用流 uva10806 You are a political prisoner in jail. Things are looking grim, but fortunately, your jailmate has comeup with an escape plan. He has fou 最小费用流 ci Back 费用流 HDU 5988 Coding Contest (最小费用流) Description A coding contest will be held in this university, in a huge playground. The whole playground wo i++ git 最小费用流 poj 2135 Farm Tour 最小费用流 Farm TourTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13778 Accepted: 5228DescriptionWhen FJ's friends visit him on the farm, he likes to show them a poj 最小费用流 sed #include i++ UVA - 11613 Acme Corporation(最小费用流) 题目大意:A公司生产一种元素,给出该元素在未来M个月中每个月的单位售价 #include i++ #define POJ 2135 Farm Tour (最小费用流) Description When FJ’s friends visit him on the farm, he likes to show them around. His farm comprises N (1 #include 网络流 i++ poj 2135 Farm Tour 【最小费用流】 Farm TourTime Limit: 1000MS Memory Limit: 65536KTotal Submissioon the farm, he likes to show them #include i++ 最短路 poj 2516 Minimum Cost 最小费用流 Minimum CostTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 15183 Accepted: 5228DescriptionDearboy, a goods victualer, now comes to a big problem, and h poj 最小费用流 i++ sed #include UVA11613 Acme Corporation —— 最小费用流(流量不固定的最小费用流) 题目链接:https://vjudge.net/problem/UVA-11613 题意: 商品X在第i个月内:生产一件需要花费mi元,最多可生产ni件,销售一件(在这个月内销售,而不管它是在那个月生产的)的价格是pi元, 最多能销售si件, 在这个月生产的产品的保质期为Ei。对于所有商品X,每“保 #include 最小费用流 i++ ios 训练指南 最小费用流算法 python 最小费用流的迭代方法 目录1 最小费用流 最小费用流问题的线性规划表示 例 19(最小费用最大流问题) 最小费用流算法 python 最大流 最小费用流 网络模型 最小费用流问题 python 最小费用流问题详解 题意: 给一个n个点m条边的有向带权图,q次询问,每次规定每条边的容量为u/v,你需要输出总流量为1时,从点1到点n的最小费用(分数表示),若到达的流量不足为1,则输出NaN;题解:标准费用流模板,但是q的范围是1e5,所以我们要先跑一次费用流,把有用的信息记录下来,即把每一条增广路径的费用记录下来。考虑放缩,同时乘以v,则总流量为v,每条边的容量为u,这是算出来的总费用除以v即为答案。我们可以在 最小费用流问题 python i++ 预处理 权值 最小费用流的建模和gurobi求解 python 最小费用流问题 前言:在最大流问题的网络中,给边新加上费用,求流量为F时费用的最小值。该类问题就是最小流费用问题。算法分析:在解决最小费用流的问题上,我们将沿着最短路增广并以费用作为路径长短的衡量,在增广时残余网络中的反向边的费用应该是原边费用的相反数,目的是保证过程可逆并且正确。因此在本算法的实现上,其一我们需要利用Bellman_Ford或Dijkstra算法求得最短路并将其保存,其二则是求解该通过该最短路的 最小费用流 最短路 #include bzoj 1877 最小费用流 思路:挺裸的费用流,拆拆点就好啦。 #define i++ 5e c++ #include UVA 11613 Acme Corporation(不固定流量的最小费用流) 题意好长。。。。变量好多。。。。增加源点跟汇点。然后将每个月份看成一个点,然后拆成两个点u 跟 u+n。从s向每个u连一条的弧,表示最多生产量及价值。从每个u+n向t连一条的弧,表示最多销量及价值。对于存放的情况 for(int j=0; j的弧,表示存放所要花费的价值。这题并不需要满足销量最大,也就是不固定流量的最小费用流,也就是说当s-t增广长度大于0的时候停止增广就行了。还有,稠密图ZKW效率不是太高。。。。#include#include#include#include#include#define REP(i, n) for(int i=0; i > q; dis[st... #include #define 最小费用流 i++ ios hdu 4411(最小费用流) 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4411思路:这道题建图比较难想,首先是建立超级源点和超级汇点,那么由于有K个警察,于是vs与0连边,容量为k,费用为0,因为这K个警察不一定都出去,也就是不一定是最大流,于是0和vt连边,容量为k,费用为0。然后就是拆点建图了:(1):0到i连边,容量为1,费用0到i的最短路,表示去抓城市i的小偷。(2):从i到i+n,容量为1,费用为-1000000(很小的负权),这样可以保证每个城市都能遍历到。(3):对于城市i,j,(i 2 #include 3 #include 4 #include ... 图论(网络流) #include i++ #define 拆点 UVa 1658 Admiral (最小费用流) 题意:给定一个图,求1-n的两条不相交的路线,并且权值和最小。 析:最小费用流,把每个结点都拆成两个点,中间连一条容量为1的边,然后一个作为入点,另一个是出点。最后跑两次最小费用流就行了。 代码如下: #include #define 最小费用流 ios 出点 es scroll 能做实时查询吗 一、ElasticSearchElasticSearch是个开源的分布式的搜索引擎,它可以近乎实时的存储、检索数据;Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。ElasticSearch提供javaAPI,使用者可以通过javaAPI调用,但是7 es scroll 能做实时查询吗 elasticsearch 大数据 日志采集 数据分析 python 更改类库路径 在使用Python的requests库进行网络请求时,有时候会遇到代理连接超时的问题。用户可能会提供了无效的代理服务器,并且希望设置一个非常短的超时时间,以便请求能够快速失败。然而,实际的结果可能与预期相反,用户发现无法设置代理连接的超时时间。解决方案 为了解决上述问题,我们可以考虑修改requests库的源代码。具体来说,我们可以在源代码中的ProxyManager类中添加一个参数来设置代理连接 python 更改类库路径 python 服务器 开发语言 解决方案 Python导入项目未解析 Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py。 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以XX.py为准。 什么是模块?1 大家之前在编写ATM作业时,思路是先将程序中都需要有哪些功能定义出来,然后在需要用的地方调用即可。 2 比起之前通篇垒代码的方式,将 Python导入项目未解析 python c/c++ 名称空间 Code CNN模型 评价指标 前言 自从AlexNet一举夺得ILSVRC 2012 ImageNet图像分类竞赛的冠军后,卷积神经网络(CNN)的热潮便席卷了整个计算机视觉领域。CNN模型火速替代了传统人工设计(hand-crafted)特征和分类器,不仅提供了一种端到端的处理方法,还大幅度地刷新了各个图像竞赛任务的精度,更甚者超越了人眼的精度(LFW人脸识别任务)。CNN模型在不断逼近计算机视觉任务的精度极限的同时,其深 CNN模型 评价指标 卷积 卷积核 权值 es查询索引的最新数据 目录Table of Contents1 增删改document的流程1.1 协调节点 - Coordinating Node1.2 增删改document的流程2 查询document的流程参考资料1 增删改document的流程1.1 协调节点 - Coordinating NodeCoordinating Node(协调节点): 客户端随机选择一个Node用来发送操作请求, 这个节点就称为协 es查询索引的最新数据 客户端 增删改 请求转发