闫学灿acwing_AAU BBU RRU

闫学灿acwing_AAU BBU RRU给定一个包含 n 个点 m 条边的有向图,并给定每条边的容量,边的容量非负。图中可能存在重边和自环。求从点 S 到点 T 的最大流。输入格式第一行包含四个整数 n,m,S,T。接下来 m 行,每行三个整数 u,v,c,表示从点 u 到点 v 存在一条有向边,容量为 c。点的编号从 1 到 n。输出格式输出点 S 到点 T 的最大流。如果从点 S 无法到达点 T 则输出 0。数据范围2≤n≤1000,1≤m≤10000,0≤c≤10000,S≠T输入样例:7 14 1 71 2

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个包含 n 个点 m 条边的有向图,并给定每条边的容量,边的容量非负。

图中可能存在重边和自环。求从点 S 到点 T 的最大流。

输入格式
第一行包含四个整数 n,m,S,T。

接下来 m 行,每行三个整数 u,v,c,表示从点 u 到点 v 存在一条有向边,容量为 c。

点的编号从 1 到 n。

输出格式
输出点 S 到点 T 的最大流。

如果从点 S 无法到达点 T 则输出 0。

数据范围
2≤n≤1000,
1≤m≤10000,
0≤c≤10000,
S≠T

输入样例:
7 14 1 7
1 2 5
1 3 6
1 4 5
2 3 2
2 5 3
3 2 2
3 4 3
3 5 3
3 6 7
4 6 5
5 6 1
6 5 1
5 7 8
6 7 7
输出样例:
14
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
const int M = 2e4 + 10;
const int INF = 0x3f3f3f3f;
struct Edge{ 
   
    int v,next,w;
}edge[M];
int head[N],cnt;
int pre[N],d[N],q[N],st[N];
int tt = 0,hh = 0;
int n,m,s,e;
void add(int u,int v,int w){ 
   
    edge[cnt].v = v;
    edge[cnt].w = w;
    edge[cnt].next = head[u];
    head[u] = cnt ++;
}
bool bfs(){ 
   
    hh = tt = 0;
    memset(st,0,sizeof st);
    q[tt ++] = s,d[s] = INF,st[s] = true;
    pre[s] = -1;
    while(hh < tt){ 
   
        int t = q[hh ++];
        for(int i = head[t];~i;i = edge[i].next){ 
   
            int v = edge[i].v,w = edge[i].w;
            if(!st[v] && w > 0){ 
   
                st[v] = true;
                d[v] = min(d[t],w);
                pre[v] = i;
                if(v == e)return true;
                q[tt ++] = v;
            }
        }
    }
    return false;
}
int EK(){ 
   
    int maxflow = 0;
    while(bfs()){ 
   
        maxflow += d[e];
        for(int t = e;t != s;t = edge[pre[t] ^ 1].v){ 
   
            edge[pre[t]].w -= d[e];
            edge[pre[t] ^ 1].w += d[e];
        }
    }
    return maxflow;
}
int main(){ 
   
    int x,y,w;
    memset(head,-1,sizeof head);
    cin>>n>>m>>s>>e;
    for(int i = 0;i < m;i ++){ 
   
        cin>>x>>y>>w;
        add(x,y,w);
        add(y,x,0);
    }
    // bfs();
    cout<<EK()<<endl;
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • 最简单的基于FFMPEG的音频编码器(PCM编码为AAC)

    最简单的基于FFMPEG的音频编码器(PCM编码为AAC)

    2022年1月27日
    49
  • Negative Sampling 负采样详解[通俗易懂]

    Negative Sampling 负采样详解[通俗易懂]在word2vec中,为了简化训练的过程,经常会用到NegativeSampling负采样这个技巧,这个负采样到底是怎么样的呢?之前在我的博文word2vec算法理解和数学推导中对于word2vec有了很详细的数学推导,这里主要讲解一下负采样是如何降低word2vec的复杂度的。首先我们直接写出word2vec的目标函数,假设有一句话:query=w1,w2,w3,..,wnquery=…

    2022年6月26日
    82
  • redis命令

    redis命令redis命令

    2022年4月24日
    44
  • 如何在docker容器中运行docker命令

    如何在docker容器中运行docker命令欢迎关注个人微信公众号:devopscube前言​Docker作为目前炙手可热的容器运行环境,越来越多的应用到应用的部署当中。这种一次打包,随处运行的模式备受好评,也节约了很多环境配置的麻烦。很多软件运行时都提供了docker的镜像部署方式,我们可以看到常用的组件,开源的项目,都会提供docker镜像,或者用于打包镜像的dockerfile。所以Docker已然成为了软件…

    2022年5月17日
    156
  • php接口转发_php发送get请求

    php接口转发_php发送get请求php实现URL转发代码的方法:1、使用“$_SERVER[“SERVER_NAME”]”变量;2、通过“header(“location:http://youname.com”);”函数;3、利用frame元素。推荐:《PHP视频教程》PHP实现URL转发代码花了一点时间研究了一下,发现还是蛮有意思的主要是依靠3个东西:1.$_SERVER[“SERVER_NAME”]这个变量2.head…

    2022年10月19日
    0
  • SpringSecurity配置跨域访问[通俗易懂]

    SpringSecurity配置跨域访问[通俗易懂]说明java后端web服务有很多种方法可以实现跨域访问,配置很简单,今天这里我们用SpringSecurity的方式配置跨域访问,配置方法如下:packagecom.wisea.config;importorg.springframework.context.annotation.Bean;importorg.springframework.security.config.annotation.web.builders.HttpSecurity;importorg.springframe

    2022年9月1日
    1

发表回复

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

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