最大流SAP模板(邻接矩阵)
来源:互联网 发布:java局域网通信 编辑:程序博客网 时间:2024/04/29 03:59
#include <stdio.h>#include <math.h>#include <stdlib.h> #include <ctype.h> #include <algorithm> #include <vector> #include <string.h> #include <queue> #include <stack> #include <set> #include <map> #include <string> #include <sstream> #include <malloc.h>using namespace std;//结点编号0开始const int MAXN = 1100;int maze[MAXN][MAXN];int gap[MAXN], dis[MAXN], pre[MAXN], cur[MAXN];int sap(int start,int end,int nodenum){ memset(cur, 0, sizeof(cur)); memset(dis, 0, sizeof(dis)); memset(gap, 0, sizeof(gap)); int u = pre[start] = start, maxflow, aug = -1; gap[0] = nodenum; while (dis[start] < nodenum) { loop: for (int v = cur[u]; v < nodenum; v++) if (maze[u][v] && dis[u] == dis[v] + 1) { if (aug == -1 || aug > maze[u][v]) aug = maze[u][v]; pre[v] = u; u = cur[u] = v; if (v == end) { maxflow += aug; for (u = pre[u]; v != start; v = u, u = pre[u]) { maze[u][v] -= aug; maze[v][u] += aug; } aug = -1; } goto loop; } int mindis = nodenum - 1; for (int v = 0; v < nodenum;v++) if (maze[u][v] && mindis > dis[v]) { cur[u] = v; mindis = dis[v]; } if ((--gap[dis[u]]) == 0) break; gap[dis[u] = mindis + 1]++; u = pre[u]; } return maxflow;}int main(){ return 0;}
0 0
- 最大流SAP模板(邻接矩阵)
- SAP 网络流模板,邻接矩阵
- 最大流 SAP模板
- 最大流Sap模板
- 最大流SAP模板
- SAP最大流模板
- 网络最大流(SAP)【模板】
- 网络最大流(SAP)模板
- 最大流sap模板 (转自庄神)
- HDU 3549 Flow Problem(最大流+EK邻接表||邻接矩阵||dinic算法模板比较)
- 网络流最大流EdmondKarp、SAP【模板】
- 网络流最大流sap算法模板
- 最大流模板(sap+gap+当前弧)
- 【最大流之sap】【HDU1532】模板题
- 最大流SAP -邻接表模板
- Dijkstra模板(邻接矩阵)
- 网络最大流(SAP)
- 最大流(SAP算法)
- c语言大数阶乘和计算阶乘末尾的0的个数
- Mac OS X PPTP VPN设置
- 最大流SAP -邻接表模板
- POJ 1273 DRAINAGE DITCHES【最大流】
- 关于头文件和库文件
- 最大流SAP模板(邻接矩阵)
- 谈谈WEB开发中的苦大难字符集问题
- windows API 生成一个窗口简单例子
- 容斥原理
- git 在win7上安装获取linux(centos)上面的remote repository的代码
- 有趣的语境不对等
- 第十四周 项目二:用文件保存的学生名单
- UVA 11029 【快速幂】
- 一个存在重复数字的正整数数列,每个数都不超过32,找出其中所有重复的数字