uva820 Internet Bandwidth
就是模板...
- #include<cstdio>
- #include<cstring>
- #include<vector>
- #include<queue>
- #include<algorithm>
- #include<cmath>
- using namespace std;
- const int maxn = ;
- #define inf 1<<30
- int n;
- int a[maxn],p[maxn];
- struct edge
- {
- int from,to,w,cap,flow;
- edge(int from,int to,int cap,int flow):from(from),to(to),cap(cap),flow(flow){
- }
- };
- vector<edge> edges;
- vector<int> g[maxn];
- void init(int k)
- {
- for(int i=;i<=k;i++)g[i].clear();
- edges.clear();
- }
- void addedge(int from,int to,int cap)
- {
- edges.push_back(edge(from,to,cap,));
- edges.push_back(edge(to,from,cap,));
- int m=edges.size();
- g[from].push_back(m-);
- g[to].push_back(m-);
- }
- int Max_flow(int s,int t)
- {
- int flow=;
- while()
- {
- queue<int> q;
- memset(a,,sizeof(a));
- q.push(s);
- a[s]=inf;
- while(!q.empty())
- {
- int x = q.front();q.pop();
- for(int i=;i<g[x].size();i++)
- {
- edge &e=edges[g[x][i]];
- if(!a[e.to]&&e.cap>e.flow)
- {
- p[e.to]=g[x][i];
- a[e.to]= min(a[x],e.cap-e.flow);
- q.push(e.to);
- }
- }
- if(a[t])break;
- }
- if(!a[t])break;
- for(int i=t;i!=s;i=edges[p[i]].from)
- {
- edges[p[i]].flow+=a[t];
- edges[p[i]^].flow-=a[t];
- }
- flow+=a[t];
- }
- return flow;
- }
- int main()
- {
- int cas = ;
- while(scanf("%d",&n)&&n)
- {
- int s,t,c;
- int u,v,cap;
- init(n);
- scanf("%d%d%d",&s,&t,&c);
- for(int i=;i<c;i++)
- {
- scanf("%d%d%d",&u,&v,&cap);
- addedge(u,v,cap);
- }
- printf("Network %d\nThe bandwidth is %d.\n\n",++cas,Max_flow(s,t));
- }
- }
uva820 Internet Bandwidth的更多相关文章
- UVA-820 Internet Bandwidth (最大流)
题目大意:单源单汇无向网络求最大流. 题目分析:入门级别的题.但是ISAP在这儿好像不大好使?... 代码如下: # include<iostream> # include<cstd ...
- light oj 1153 - Internet Bandwidth【网络流无向图】
1153 - Internet Bandwidth PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- UVA 820 Internet Bandwidth 因特网宽带(无向图,最大流,常规)
题意:给一个无向图,每条边上都有容量的限制,要求求出给定起点和终点的最大流. 思路:每条无向边就得拆成2条,每条还得有反向边,所以共4条.源点汇点已经给出,所以不用建了.直接在图上跑最大流就可以了. ...
- UVA 820 Internet Bandwidth
题意: 给出双向图,求给出两点的流通总流量. 分析: 网络流中的增广路算法. 代码: #include <iostream>#include <cstring>#include ...
- UVa 820 Internet Bandwidth (裸板网络流)
题意:有一个计算机网络,输入节点数n,输入网络流源点和汇点src,des,再输入双向边数m.给出m条边的负载,求最大流. 析:直接上网络流的最大流. 代码如下: #pragma comment(lin ...
- UVA - 820 Internet Bandwidth(最大流模板题)
题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...
- UVA - 820 Internet Bandwidth (因特网带宽)(最大流)
题意:给出所有计算机之间的路径和路径容量后,求出两个给定结点之间的流通总容量.(假设路径是双向的,且两方向流动的容量相同) 分析:裸最大流.标号从1开始,初始化的时候注意. #pragma comme ...
- Remote Displayer for Android V1.2
VERSION LOG for Android Remote Displayer Features:The app allows you to see your Android device remo ...
- PF防火墙
PF防火墙 点击认领 PF防火墙 ( 全称:Packet Filter ) 是 UNIX LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的软件系统.PF 同样也能提供 TCP/ ...
随机推荐
- Where Amazing Happens
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...
- 语言学习系列-Scala连接数据库示例
Scala语法 预装数据库Mysql,登录用户名密码为:root:root,建立数据库test1,建立数据表emp: package com.ccb.day1 import java.sql.Dr ...
- 51nod 1267【二分】
思路: 首先我们能够很容易地想到,4个数的和,拆成两两相加:a+b=-c-d; 我们也能很轻松地求出两两之和,但是呢..不同的和会存在相同的值相加,所以还要排除这个条件.具体操作就是标记一下,然后将和 ...
- hdoj1028;他们说这题叫dp...
#include<cstdio> #include<string> #include<iostream> #include<vector> #inclu ...
- 国产spfa瞎几把嗨
//在各种不利的因素下,我居然就这么水过了这题最短路,然而还wa了一次,因为路是双向的... //这题姿势很多啊,但自从会了国产spfa就是最短路能搞的就是spfa,优点太多了!!! //也是瞎几把打 ...
- vbox虚拟机配置Redhat6.4本地yum源
作为一个新手,配置这个yum源配了4天,遇到了各种问题,也按照网络上面一些方法在163上面下载CentOS6的yum源来替换Redhat本地的yum源,但是配置过程中,出现很多错误,发现直接在本地配置 ...
- Jquery | 基础 | 慕课网 | 类选择器
原生getElementsByClassName()函数的实现代码与jQuery实现代码的比较: <!DOCTYPE html> <html> <head> < ...
- 跟我一起玩Win32开发(1):关于C++的几个要点
我不知道各位,一提起C++,第一感觉是什么?而据俺的观察,许多人几乎成了“谈C色变”.不管是C还是C++,一直以来都被很多人视为相当难学的玩意儿,幸好只是一个C++,没有C--,C**和C//,不然, ...
- jmeter持续集成测试中mongodb版本问题
jmeter测试mongodb,采用的是JSR223 Sampler脚本连接数据库,其中连接数据库用到了SCRAM-SHA1认证机制,代码如下: MongoCredential credential ...
- C++命名空间详解
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...