题意:

  给出双向图,求给出两点的流通总流量。

分析:

  网络流中的增广路算法。

代码:

  

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <queue>
using namespace std;
const int maxn=103;
int g[maxn][maxn],flow[maxn][maxn];
int f[maxn];
int s,t,n;
int bfs()
{
int a[maxn];
int u,v;
memset(flow,0,sizeof(flow));
int flag=0;
while(1)
{
memset(a,0,sizeof(a));
queue<int>q;
a[s]=100000;
q.push(s);
while(!q.empty())
{
u=q.front();
q.pop();
for(v=1;v<=n;v++)
{
if(!a[v]&&g[u][v]-flow[u][v]>0)
{
f[v]=u;
a[v]=a[u]>g[u][v]-flow[u][v]?g[u][v]-flow[u][v]:a[u];
q.push(v);
}
}
}
if(a[t]==0)
break;
for(u=t;u!=s;u=f[u])
{
flow[f[u]][u]+=a[t];
flow[u][f[u]]-=a[t];
}
flag+=a[t];
}
return flag;
}
int main()
{
int c,u,v,cost;
int cas=1;
while(scanf("%d",&n)&&n)
{
scanf("%d%d%d",&s,&t,&c);
memset(g,0,sizeof(g));
while(c--)
{
scanf("%d%d%d",&u,&v,&cost);
g[u][v]+=cost;
g[v][u]=g[u][v];
}
printf("Network %d\n",cas++);
printf("The bandwidth is %d.\n\n",bfs());
}
}

UVA 820 Internet Bandwidth的更多相关文章

  1. UVA 820 Internet Bandwidth 因特网宽带(无向图,最大流,常规)

    题意:给一个无向图,每条边上都有容量的限制,要求求出给定起点和终点的最大流. 思路:每条无向边就得拆成2条,每条还得有反向边,所以共4条.源点汇点已经给出,所以不用建了.直接在图上跑最大流就可以了. ...

  2. UVa 820 Internet Bandwidth (裸板网络流)

    题意:有一个计算机网络,输入节点数n,输入网络流源点和汇点src,des,再输入双向边数m.给出m条边的负载,求最大流. 析:直接上网络流的最大流. 代码如下: #pragma comment(lin ...

  3. UVA - 820 Internet Bandwidth(最大流模板题)

    题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...

  4. UVA - 820 Internet Bandwidth (因特网带宽)(最大流)

    题意:给出所有计算机之间的路径和路径容量后,求出两个给定结点之间的流通总容量.(假设路径是双向的,且两方向流动的容量相同) 分析:裸最大流.标号从1开始,初始化的时候注意. #pragma comme ...

  5. UVA 820 --- POJ 1273 最大流

    找了好久这两个的区别...UVA820 WA了 好多次.不过以后就做模板了,可以求任意两点之间的最大流. UVA 是无向图,因此可能有重边,POJ 1273是有向图,而且是单源点求最大流,因此改模板的 ...

  6. light oj 1153 - Internet Bandwidth【网络流无向图】

    1153 - Internet Bandwidth   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...

  7. uva 820(最大流)

    最大流的裸题,直接贴了模板. #include <cstdio> #include <iostream> #include <sstream> #include & ...

  8. UVa OJ 140 - Bandwidth (带宽)

    Time limit: 3.000 seconds限时3.000秒 Problem问题 Given a graph (V,E) where V is a set of nodes and E is a ...

  9. UVa 820 因特网带宽(最大流)

    https://vjudge.net/problem/UVA-820 题意: 给出所有计算机之间的路径和路径容量后求出两个给定结点之间的流通总容量. 思路: 裸的最大流问题.注意有个比较坑的地方,最后 ...

随机推荐

  1. Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamPath,getFilesDir,openFileInput, ...)

    为了保证应用程序存储数据的安全性,开发人员在开发应用程序的过程中须要注意使用Android 应用程序的内部存储空间. 依据不同的要求.将相应的数据文件.缓存文件.暂时文件等分别存储在相应的位置. 注意 ...

  2. POJ3071:Football(概率DP)

    Description Consider a single-elimination football tournament involving 2n teams, denoted 1, 2, …, 2 ...

  3. js的for in循环和java里的foreach循环的差别

    js里的for in循环定义例如以下: for(var variable in obj) { ... } obj能够是一个普通的js对象或者一个数组.假设obj是js对象,那么variable在遍历中 ...

  4. linux下挂载iso镜像文件(转)

    挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式: mount [-t vfstype] [-o optio ...

  5. 【类似N^N做法的斐波那契数列】【HDU1568】 Fibonacci

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. 《JavaScript 闯关记》之数组

    数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引. JavaScript 数组是无类型的,数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型 ...

  7. Javascript基础学习笔记

    什么是变量?变量是用于存储信息的容器变量的声明语法: var 变量名 变量名 = 值;变量要先声明再赋值变量可以重复赋值变量的命名规则变量必须以字母开头:变量也能以$和_符号开头(不过我们不推荐这么做 ...

  8. Input输入字体颜色改变js(兼容IE)

    从网上找的代码,自己封装了一下(前提:引用jQuery库) 方法1: HTML: <div class="box"> <div class="ipt1& ...

  9. ajax全局函数运用

  10. 纯CSS3技术 加载中

    你能相信吗?这些都是由一个DIV元素实现的动画,纯CSS3技术 html  <div class="loader">加载中...</div> css: 图( ...