NYOJ 哭泣天使 sap求最大流

2021-09-02 16:16:21 字數 863 閱讀 5680

題目大意:中文題。

演算法思路:因為他是網格,所以我們把將每一行看成點,將每一列看成點,將行與超級源點連線,行再與列相連線,列再與超級會點相連,求最大流即可。

#includeusing namespace std;

#define inf 0xfffffff

#define maxn 600

int t;

int m,n,sum1,sum2,src,sink;

int a[maxn],b[maxn];

int maps[maxn][maxn],pre[maxn],level[maxn];

int gap[maxn];

int sap(int s,int t)

if(v<=t)

u=s;}}

else

--gap[level[u]];

if(gap[level[u]]==0) return ans;

level[u]=mindis;

gap[mindis]++;

if(u!=s) u=pre[u];}}

return ans;

}int main()

for(int i=1;i<=n;i++)

if(sum1!=sum2)

src=0;

sink=n+m+1;

for(int i=1;i<=m;i++)

}int ans=sap(src,sink);

if(sum1!=ans)

printf("terrible\n");

else

printf("not sure\n");

}return 0;

}

最大流SAP演算法

求最大流有一種經典的演算法,就是每次找增廣路時用bfs找,保證找到的增廣路是弧數最少的,也就是所謂的edmonds karp演算法。可以證明的是在使用最短路增廣時增廣過程不超過v e次,每次bfs的時間都是o e 所以edmonds karp的時間複雜度就是o v e 2 如果能讓每次尋找增廣路時的...

最大流SAP演算法

求最大流有一種經典的演算法,就是每次找增廣路時用bfs找,保證找到的增廣路是弧數最少的,也就是所謂的edmonds karp演算法。可以證明的是在使用最短路增廣時增廣過程不超過v e次,每次bfs的時間都是o e 所以edmonds karp的時間複雜度就是o v e 2 如果能讓每次尋找增廣路時的...

SAP 演算法 求最大流 poj 3189 pku

include using namespace std int const maxn 1100 int const maxm 50010 int const oo 1234567890 typedef struct edge t edge t e maxm int first maxn int di...