费用流 板子

#include
using namespace std;
const int MM=100005;
int u,v,w,c,tmp,n,m,s,t,tot=1,flow,cost,nxt[MM],to[MM],fl[MM],cs[MM],dis[MM],head[MM],vis[MM],pre[MM],in[MM];
void add(int u,int v,int w,int c)
{
    nxt[++tot]=head[u];
    to[tot]=v;
    fl[tot]=w;
    cs[tot]=c;
    head[u]=tot;
}
bool spfa()
{
    queue<int> q;
    memset(dis,0x3f,sizeof(dis));
    memset(vis,0,sizeof(vis));
    q.push(s);
    dis[s]=0;
    in[s]=1<<30;
    while(!q.empty())
    {
        int now=q.front();
        vis[now]=0;
        q.pop();
        for(int i=head[now];i;i=nxt[i])
        {
            if(!fl[i])continue;
            if(dis[now]+cs[i]<dis[to[i]])
            {
                dis[to[i]]=dis[now]+cs[i];
                in[to[i]]=min(in[now],fl[i]);
                pre[to[i]]=i;
                if(!vis[to[i]])
                {
                    vis[to[i]]=1;
                    q.push(to[i]);
                }
            }
        }
    }
    if(dis[t]==1061109567)
        return 0;
    return 1;
}
void cf()
{
    while(spfa())
    {
        flow+=in[t];
        cost+=dis[t]*in[t];
        tmp=t;
        while(tmp!=s)
        {
            fl[pre[tmp]]-=in[t];
            fl[pre[tmp]^1]+=in[t];
            tmp=to[pre[tmp]^1];
        }
    }
}
int main()
{
    cin>>n>>m>>s>>t;
    for(int i=1;i)
    {
        cin>>u>>v>>w>>c;
        add(u,v,w,c);
        add(v,u,0,-c);
    }
    cf();
    cout<' '<<cost;
    return 0;
}

Original: https://www.cnblogs.com/29taorz/p/15727637.html
Author: T_X蒻
Title: 费用流 板子

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644071/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 监控浏览器tab切换或最小化事件

    背景:最近遇到1个项目,业务方调用了后端1个开销较大的接口,用于页面实时监控一些关键指标,页面是自动定时请求接口刷新数据,随着用户的增加,后端压力比较大,分析发现,很多用户日常使用…

    技术杂谈 2023年5月31日
    0104
  • 装机员教你Win10正式版怎么关闭自动更新

    Win10正式版怎么关闭自动更新?并不是系统所有的补丁更新都可以更新到,最近有个补丁怎么也更新不到,每次开关机都更新失败很是讨厌,那么下面来看看我是怎么关闭Win10系统的自动更新…

    技术杂谈 2023年5月31日
    085
  • 闭包

    闭包的理解 1. 什么是闭包 《Python核心编程》中的解释: “如果在一个内部函数里,对外部作用域(但不是全局作用域)的变量进行引用,那么 内部函数就被认为是闭包。…

    技术杂谈 2023年7月11日
    065
  • 数据库架构演变概要

    一. 背景 为了适应业务增长,数据库数据量快速增长,性能日趋下降,稳定性不佳的实际情况,急需架构逐步演变适应未来的业务发展。 二. 现状 【稳定性】数据库为单点,没有高可用和稳定性…

    技术杂谈 2023年7月23日
    066
  • [数位dp] spoj 10738 Ra-One Numbers

    题意:给定x、y。为[x,y]之间有多少个数的偶数位和减去奇数位和等于一。 个位是第一位。 样例: 10=1-0=1 所以10是这种数 思路:数位dp[i][sum][ok] i位…

    技术杂谈 2023年5月31日
    097
  • 多项式求逆

    已知一度数为n的多项式(A(x))。 [A(x)B(x)\equiv1\pmod {x^n} ] (B(x))即为(A(x))的逆元。 多项式的除法、(\exp)和(\ln)都是基…

    技术杂谈 2023年6月21日
    0103
  • PreparedStatement报错问题

    package com.lian.lesson3; import com.lian.lesson2.utils.JDBCUtils; import java.sql.*; publ…

    技术杂谈 2023年6月21日
    091
  • 基于UML软件建模的企业人事管理系统

    前言 随着信息技术的发展和互联网环境的成熟,管理信息系统的技术更新函待解决。人事管理工作虽然由企业人事管理人员((HR)等负责,但随着企业规模的不断扩大,如果所有工作全部由HR来做…

    技术杂谈 2023年6月21日
    0113
  • [转帖]kubernetes配置secret拉取私仓镜像

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月30日
    0104
  • codepage IMLangCodePages

    http://baike.baidu.com/link?url=78DSTGAri8dvHNLQ03rThSKieJqhFwFWL4sQMao6cfaRSOUWN88QVBwmSJ…

    技术杂谈 2023年5月31日
    095
  • 手把手教你:基于深度学习的滚动轴承故障诊断

    系列文章 手把手教你:玩转图像分类和目标检测系统 手把手教你:图像识别的垃圾分类系统 手把手教你:基于粒子群优化算法(PSO)优化卷积神经网络(CNN)的文本分类 一、项目简介 本…

    技术杂谈 2023年7月25日
    082
  • cgroup-v1在android中的应用实现浅析

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年7月10日
    060
  • 基于ArcGIS Engine + C#实现用户自定义动态电力符号

    转自 华立电网北京研发中心 阿文 ArcGIS Engine 二次开发一般需要通过桌面产品来制作这些符号,然后通过专门的转换工具转换以后供AE 使用。电力GIS 应用当中,电力设备…

    技术杂谈 2023年5月31日
    094
  • Linux文件属性及权限

    Linux文件属性及权限 首先我们以root用户的身份登录linux,执行ls -al 查看文件: 文件类型: 【d】 代表目录(directory)、【-】代表文件、【l】代表链…

    技术杂谈 2023年7月11日
    073
  • node 常用依赖包

    汇总常用依赖包: https://github.com/MengFangui/awesome-nodejs 作者:孟繁贵 Email:meng010387@126.com 期待共同…

    技术杂谈 2023年5月31日
    0108
  • Accounting Calendar template

    SELECT INITCAP (TO_CHAR (TO_DATE (&year || ‘-‘ || LPAD (ROWNUM, 2, ‘…

    技术杂谈 2023年6月1日
    0104
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球