#include <iostream>
#include <queue>
#define msize 205 //最大顶点数目
//#define INT_MAX 100000000
using namespace std;
int d[msize]; //标号
int r[msize][msize]; //残留网络,初始为原图
int num[msize]; //num[i]表示标号为i的顶点数有多少
int pre[msize];
int n,m; //m个顶点,n条边,从源点s到汇点t
int min(int a,int b)
{
if(a<b) return a;
else return b;
}
void init(int s,int t) //BFS计算标号,汇点t标号为0
{
int k;
queue<int>Q;
memset(d,1,sizeof(d));
memset(num,0,sizeof(num));
Q.push(t);
d[t]=0;
num[0]=1;
while (!Q.empty())
{
k=Q.front(),Q.pop();
for (int i=0;i<n+2;i++)
{
if (d[i]>=n+2&&r[i][k]>0)
{
d[i]=d[k]+1;
Q.push(i);
num[d[i]]++;
}
}
}
}
int findAlowArc(int i) //从i出发寻找允许弧
{
int j;
for (j=0;j<n+2;j++) if (r[i][j]>0&&d[i]==d[j]+1) return j;
return -1;
}
int reLable(int i) //重新标号
{
int mm=INT_MAX;
for (int j=0;j<n+2;j++)
if (r[i][j]>0) mm=min(mm,d[j]+1);

return mm==INT_MAX?(n):mm;
}
int maxFlow(int s,int t) //从源点s出发的最大流
{
int flow=0,i=s,j;
int delta; //增量
memset(pre,-1,sizeof(pre));
while (d[s]<n+2)
{
j=findAlowArc(i);
if (j>=0)
{
pre[j]=i;
i=j;
if (i==t) //更新残留网络
{
delta=INT_MAX;
for (i=t;i!=s;i=pre[i]) delta=min(delta,r[pre[i]][i]);
for (i=t;i!=s;i=pre[i]) r[pre[i]][i] -= delta, r[i][pre[i]] += delta;
flow += delta;
}
}
else
{
int x=reLable(i); //重新标号
num[x]++;
num[d[i]]--;
if (num[d[i]]==0) return flow; //间隙优化
d[i]=x;
if (i!=s) i=pre[i];
}
}
return flow;
}
int main()
{
int i,j,k;
int np,nc;
int a,b,z;
while(scanf("%d%d%d%d",&n,&np,&nc,&m)!=EOF)
{
memset(r,0,sizeof(r));
for(i=1;i<=m;i++)
{
scanf(" (%d,%d)%d",&a,&b,&z);
r[a][b]=z;
}
for(i=1;i<=np;i++)
{
scanf(" (%d)%d",&a,&z);
r[n][a]=z;
}
for(i=1;i<=nc;i++)
{
scanf(" (%d)%d",&a,&z);
r[a][n+1]=z;
}
init(n,n+1);
printf("%d\n",maxFlow(n,n+1));
}
return 0;
}

http://blog.chinaunix.net/u3/102624/showart_2064077.html     参考模板

转载于:https://www.cnblogs.com/ACAC/archive/2010/05/18/1738742.html

pku 1459 最大流 SAP相关推荐

  1. hdu 4280 最大流sap

    模板套起来 1 5 7 //5个结点,7个边 3 3 //坐标 3 0 3 1 0 0 4 5 1 3 3 //相连的结点和流 2 3 4 2 4 3 1 5 6 4 5 3 1 4 4 3 4 2 ...

  2. (转)网络流-最大流 SAP算法(模板)

    今天做了一个毒瘤题把dinic卡了,不想因为优化常数改变习惯性的写法,干脆就直接去找个效率更高的算法拿来用多好 注意这套板子的n要在全局变量中用,并且n是所有点的数量(包括源点和汇点),所以在有的时候 ...

  3. 网络最大流的三种基础算法

    #include<iostream> #include<cstring> #include<queue> #include<cstdio> #inclu ...

  4. SAP用户权限相关操作

    SE93 查询所有TCODE 或者 table: tstc SE16 display SUIM 查询用户信息的报表们   技术流 SAP常用的TCODE---BASIS 事务码 描述 ( 中英文 ) ...

  5. sap 用户权限表_SAP 用户权限

    SE93 查询所有TCODE 或者 table: tstc SE16 display SUIM 查询用户信息的报表们 技术流 SAP常用的TCODE---BASIS 事务码 描述 ( 中英文 ) SB ...

  6. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  7. 网络流题集【夏天的风】

    [HDU] 1532Drainage Ditches(基础)    [最大流] 3549 Flow Problem(基础)    [最大流] 3572 Task Schedule    [最大流]任务 ...

  8. 用户权限_SAP 用户权限

    SAP 用户权限管理系统(AMS-V 安全网关)产品是应用于SAP系统权限风险控制及注册用户账号管理为目标的SAP软件资产精益化管理方案. SAP 用户权限管理系统使用SAP GUI标准访问协议,在线 ...

  9. LA 6474 Drop Zone (最小割)

    题目链接 要添最少的挡板使所有的'D'不存在到达网格外的路径. 以每个格子向四个方向中可以到达的格子连容量为1的边, 从源点向所有'D' 连容量为4的边,网格外的点向汇点连一条容量为4的边. 答案就是 ...

  10. linux 命令如何输入,Linux 命令行输入

    ssh项目将搜索条件进行联动 洛谷 P1010 幂次方 Label:模拟 题目描述 任何一个正整数都可以用2的幂次方表示.例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表 ...

最新文章

  1. 欧盟剑指科技巨头,意欲上调税款
  2. oracle汉化包下载地址
  3. 如何使用 Python 创建一名可操控的角色玩家
  4. oracle数据库备份方法主要有哪几种,Oracle数据库备份方法有哪三种?
  5. LightGBM安装与模型训练
  6. python重复元素判定_20段极简Python代码:这些小技巧你都Get了么
  7. 关于定义视频播放器的界面的相关的类transPortcontroll等
  8. 使用 IntraWeb (13) - 基本控件之 TIWLabel、TIWLink、TIWURL、TIWURLWindow
  9. 如何将两个虚拟机ping通?如何让虚拟机连网?
  10. 怎样用计算机添加文章标题,计算机论文题目怎么定-易指做帮写网
  11. 互联网晚报 | 3月6日 星期天 |​ iPhone 14系列前置镜头或将采用“感叹号”设计;中央援港应急医院项目开工...
  12. python中国官网-中蟒 (中文 Python) 編程語言網站 chinesepython
  13. java servlet的包下载_javax.servlet.jar下载
  14. 新浪云 php,php在新浪云中使用imagick的方法
  15. 分享一个查看外网IP的工具
  16. pm2 for linux
  17. 基础工具类Joiner的使用
  18. 高效又稳定的ChatGPT大模型训练技巧总结,让训练事半功倍!
  19. SpringCloudAlibaba整合Sentinel使用
  20. C++排序——宇宙总统

热门文章

  1. 硬核!尽量避免 bug 手法,让测试彻底失业
  2. 最新揭秘:FaceBook网站架构图
  3. 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
  4. 福利 | 简历模板大放送
  5. 笔记本电脑排名_商务轻薄本什么品牌好? 五款高性能轻薄商务笔记本电脑排名...
  6. VSNETcodePrint 2005 SQL ServerPrint 2005
  7. netcat 传输文件
  8. 2016级算法期末模拟练习赛-E.AlvinZH的青春记忆III
  9. win10 打开注册表
  10. 【夯实PHP基础】PHP的反射机制