poj 1273 网络流第一题 (pdf链接)

推荐一个学习网络流入门的资料   http://acm.pku.edu.cn/summerschool/gw_netflow.pdf

本题为网络流水题,也是pdf中将网络流的一道题,注意重边即可。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
using namespace std;
int n,m;
long long g[250][250];
int vis[250];
int pre[250];
long long Augmented()
{

    memset(vis,0,sizeof(vis));
    memset(pre,0,sizeof(pre));
    queue<int> que;
    while(!que.empty()){
        que.pop();
    }
    que.push(1);
    vis[1]=1;
    bool flag=false;
    while(!que.empty()){
        int d=que.front();
        que.pop();
        for(int i=1;i<=m;i++){
            if(g[d][i]>0 && !vis[i]){
                pre[i]=d;
                vis[i]=1;
                if(i==m){

                    flag=true;
                    while(!que.empty()){
                        que.pop();
                    }
                    break;
                }
                else{

                    que.push(i);
                }
            }
        }
    }
    if(flag){
        long long  Min= 999999999;
        int d=m;
        while(pre[d]){
            Min=min(Min,g[pre[d]][d]);
            d=pre[d];
        }
        d=m;
        while(pre[d]){
            g[pre[d]][d]-=Min;
            g[d][pre[d]]+=Min;
            d=pre[d];
        }
        return Min;
    }
    return 0;
}
int main()
{
    while(~scanf("%d%d",&n,&m)){
        memset(g,0,sizeof(g));
        for(int i=0;i<n;i++){
            int u,v;
            long long w;
            scanf("%d%d%lld",&u,&v,&w);
            g[u][v]+=w;
        }
        long long flow;
        long long maxflow=0;
        while(flow=Augmented()){
            maxflow+=flow;
        }
        printf("%lld\n",maxflow);
    }
    return 0;
}
时间: 2024-07-30 00:16:29

poj 1273 网络流第一题 (pdf链接)的相关文章

POJ 1273 Drainage Ditches(网络流 最大流)

Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 55893   Accepted: 21449 Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by

POJ 1364 King --差分约束第一题

题意:求给定的一组不等式是否有解,不等式要么是:SUM(Xi) (a<=i<=b) > k (1) 要么是 SUM(Xi) (a<=i<=b) < k (2) 分析:典型差分约束题,变换,令Ti = SUM(Xj) (0<=j<=i).  则表达式(1)可以看做T(a+b)-T(a-1) > k,也就是T(a-1)-T(a+b) < -k,又因为全是整数,所以T(a-1)-T(a+b) <= -k-1.  同理,(2)看做T(a+b)-T(

POJ 1830 【高斯消元第一题】

首先...使用abs()等数学函数的时候,浮点数用#include<cmath>,其它用#include<cstdlib>. 概念: [矩阵的秩] 在线性代数中,一个矩阵A的列秩是A的线性无关的纵列的极大数目.类似地,行秩是A的线性无关的横行的极大数目. 此题如果有解,解的个数便是2^(自由变元个数),因为每个变元都有两种选择,既1 << n 对于r以下的行,必定全是0,那么如果a[i][n]!=0 必然出现矛盾,于是判定无解. 1 #include <iostr

POJ 1273 Drainage Ditches(网络流dinic算法模板)

POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdio.h> #include <algorithm> #include <queue> #include <string.h> /* POJ 1273 dinic算法模板 边是有向的,而且存在重边,且这里重边不是取MAX,而是累加和 */ using namespace

POJ 1273 Drainage Ditches 网络流基础

Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by water for awhile and takes quite a long time to regrow. Thus, Farmer John has built a set of drainage

POJ 1273 Drainage Ditches(初识网络流)

开始研究网络流了,看了两个晚上吧,今天总算动手实践一下,有了更深的理解 总结一下:在最大流中,容量与实际流量满足3点: 1.实际流量<=容量 2.任意两点之间   : 流量(a->b)==流量(b->a) 3.流量守恒原则   :从s流出的流量 == t流入的流量 一.为什么叫增广路,因为在所有的流量网络中,会存在一个残量,所以在整个残量网络中,找到一个最小值,加到所有的流量线路里,便叫增广. 二.为什么要修改反向流量,因为在更新流量网时,当前选择的并不一定就是最优解,比如u->v

poj 1743 Musical Theme(男人八题&amp;后缀数组第一题)

Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17298   Accepted: 5939 Description A musical melody is represented as a sequence of N (1<=N<=20000)notes that are integers in the range 1..88, each representing a key on the

[转] 一些图论、网络流入门题总结、汇总

最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础)http://ac

【转】一些图论、网络流入门题总结、汇总

最短路问题 此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等) http://acm.pku.edu.cn/JudgeOnline/problem?id=2449 题意:经典问题:K短路 解法:dijkstra+A*(rec),方法很多 相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144 该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础) ht