现在的位置: 首页 > 综合 > 正文

2914 - Minimum cut (最小割 stoer…

2018年03月17日 ⁄ 综合 ⁄ 共 725字 ⁄ 字号 评论关闭
求最小割 直接写模版 但我不明白模版的含意2914 <wbr>- <wbr>Minimum <wbr>cut <wbr>(最小割 <wbr>stoer_wagner)

#include <stdio.h>
#include <string.h>
#define VM 600
#define inf 0x3f3f3f3f
int v[VM],dis[VM],vis[VM],map[VM][VM];

int stoer_wagner (int n)
{
    int i,j,res
= inf;
    for (i = 0;i
< n;i ++)
       
v[i] = i;
    while (n
> 1)
    {
       
int k = 1,pre = 0;
       
for (i = 1;i < n;i ++)
       
{
           
dis[v[i]] = map[v[0]][v[i]];
           
if (dis[v[i]] > dis[v[k]])
               
k = i;
       
}
       
memset (vis,0,sizeof(vis));
       
vis[v[0]] = 1;
       
for (i = 1;i < n;i ++)
       
{
           
if (i == n-1)
           
{
               
res = res > dis[v[k]]?dis[v[k]]:res;
               
for (j = 0;j < n;j ++)
               
{
                   
map[v[pre]][v[j]] += map[v[j]][v[k]];
                   
map[v[j]][v[pre]] += map[v[j]][v[k]];
               
}
               
v[k] = v[-- n];
  

抱歉!评论已关闭.