首页 > 其他分享 >2171. EK求最大流

2171. EK求最大流

时间:2022-12-13 11:00:54浏览次数:68  
标签:pre 最大 EK int tot vis 2171 wi

2171. EK求最大流
EK算法,每次找一条路径,找到后立马返回
dinic,一次可以找多条路径

#include <bits/stdc++.h>
using namespace std;
const int N=1e3+5;
const int M=1e6+6;

int h[N],ne[M],e[M],w[M],tot=1;
void add(int from,int to,int wi) {
    e[++tot]=to;
    w[tot]=wi;
    ne[tot]=h[from];
    h[from]=tot;
}

int n,m,S,T;
int d[N],pre[N];
bool vis[N];
bool bfs() {
    memset(vis,0,sizeof(vis));
    memset(pre,0,sizeof(pre));
    memset(d,0,sizeof(d));
    queue<int>q;
    q.push(S);
    vis[S]=1;
    d[S]=1e9;
    while(!q.empty()) {
        int now=q.front();
        q.pop();
        for(int i=h[now];i;i=ne[i]) {
            int to=e[i];
            if(vis[to]==0&&w[i]>0) {
                vis[to]=1;
                pre[to]=i;
                d[to]=min(w[i],d[now]);
                q.push(to);
                if(to==T)return 1;
            }
        }
    }
    return 0;
}

int EK() {
    int ans=0;
    while(bfs()) {
        ans+=d[T];
        for(int i=T;i!=S;i=e[pre[i]^1]) {
            int id=pre[i];
            w[id]-=d[T];
            w[id^1]+=d[T];
        }
    }
    return ans;
}

int main() {
    cin>>n>>m>>S>>T;
    while(m--) {
        int x,y,wi;
        cin>>x>>y>>wi;
        add(x,y,wi);
        add(y,x,0);
    }
    cout<<EK();
    return 0;
}

标签:pre,最大,EK,int,tot,vis,2171,wi
From: https://www.cnblogs.com/basicecho/p/16977982.html

相关文章

  • 使用TensorFlow Probability实现最大似然估计
    TensorFlowProbability是一个构建在TensorFlow之上的Python库。它将我们的概率模型与现代硬件(例如GPU)上的深度学习结合起来。极大似然估计最大似然估计是深度学习模......
  • AWS EKS-QuickStart-Deployment
    EKSAmazonElasticKubernetesService(AmazonEKS)是一项托管服务,可用于在上运行AWSKubernetes,而无需安装、操作和维护您自己的Kubernetes控制层面或节点。Kubernete......
  • 图论-堆-并查集-2503. 矩阵查询可获得的最大分数
    2503.矩阵查询可获得的最大分数DescriptionDifficulty:困难RelatedTopics:给你一个大小为mxn的整数矩阵grid和一个大小为k的数组queries。找出一个大小......
  • 【分享】小鹅通 pri-cdn-tx.xiaoeknow.com开头的视频下载方法
    <table><tr><tdbgcolor=orange>本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代......
  • 【分享】小鹅通 pri-cdn-tx.xiaoeknow.com开头的视频下载方法
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!小鹅......
  • webkit nw.js 默认 每个窗口都最大化打开
    一、前景nw.js每打开一个窗口都是默认大小,需要每个弹出窗口都是最大化窗口。二、方案根据官网给出的参数:1、编写一个待置入js,放到目录js/下,每一个打开的页面窗......
  • BZOJ4536 : 最大异或和II
    建立$n+m$个点的无向图,其中$n$个点表示输入的数列,$m$个点表示答案的$m$个二进制位。对于输入的两个数$a[i],a[j]$,若它们存在公共二进制位,则可以通过同时选某一公共位来对......
  • 最大正方形问题
    最大正方形问题作者:Grey原文地址:博客园:最大正方形问题CSDN:最大正方形问题题目描述在一个由'0'和'1'组成的二维矩阵内,找到只包含'1'的最大正方形,并返回其面积......
  • IIS 之 连接数、并发连接数、最大并发工作线程数、队列长度、最大工作进程数
    http://t.zoukankan.com/l1pe1-p-7742936.html一、IIS连接数一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,顾名思义即为IIS服务器可以同时容纳客户请求的最......
  • TIANCHI天池-OGeek算法挑战赛-完整方案及代码(亚军)
    首先很幸运拿到TIANCHI天池-OGeek算法挑战赛大赛的亚军,同时非常感谢大佬队友的带飞,同时希望我的分享与总结能给大家带来些许帮助,并且一起交流学习。(作者:王贺,知乎:鱼遇雨欲语......