zoukankan      html  css  js  c++  java
  • spfa求图的最大流

    题目链接:

    https://vjudge.net/contest/255738#problem/B

    AC代码:

    #include <iostream>
    #include<vector>
    #include<string>
    #include<cstring>
    #include<queue>
    #include<stdio.h>
    #define maxn 2000+10
    using namespace std;
    #define inf 0x3f3f3f3f
    int n,m;
    vector<pair<int,int > >q[maxn];
    int vis[maxn];
    int  path[maxn];
    int spfa()
    {
        for(int i=1; i<=n; i++)
        {
            vis[i]=0;
            path[i]=0;
        }
        path[1]=inf;
        vis[1]=1;
        queue<int>w;
        w.push(1);
        int maxx=0;
        while(!w.empty())
        {
            int top=w.front();
            w.pop();
            vis[top]=0;
            maxx=max(maxx,path[n]);
            if(path[top]<maxx)continue;
            int len=q[top].size();
            for(int i=0; i<len; i++)
            {
                int temp=q[top][i].first;
                if(path[temp]<=path[top])
                if(path[temp]<min(path[top],q[top][i].second)){
                path[temp]=min(path[top],q[top][i].second);
                if(path[temp]>maxx&&vis[temp]==0)
                    w.push(temp),vis[temp]=1;
                }
            }
        }
        return maxx;
    }
    int main()
    {
        int T;
        int num=0;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&n,&m);
            //  cin>>n>>m;
            for(int i=1; i<=n; i++)q[i].clear();
            for(int i=1; i<=m; i++)
            {
                int u,v,w;
                scanf("%d%d%d",&u,&v,&w);
                q[u].push_back(make_pair(v,w));
                q[v].push_back(make_pair(u,w));
            }
            int ans=spfa();
            printf("Scenario #%d:
    ",++num);
            printf("%d
    ",ans);
            printf("
    ");
            // cout<<"Scenario #"<<++num<<":"<<endl<<ans<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Spring 配置数据源的几种方式
    Java List 数据操作
    javascript 数组方法解析
    jQuery 获取页面元素的属性值
    表格列排序
    优秀资源的收集
    Java 集合介绍
    二进制、八进制、十进制、十六进制的转换
    Nginx配置
    Nginx安装
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10262898.html
Copyright © 2011-2022 走看看