说点自己想法吧,因为写错个变量,花了一个晚上检查,到最后才发现,原来 全局变量t 跟T写一样了
这个就是我个人的EK模板吧
#include <stdio.h>
#include <string.h>
#define VM 20
#define EM 1005
#define inf 20000
int map[VM][VM],que[VM],pre[VM],s,t;
int bfs (int n)
{
0,rear = 0;
(pre,-1,sizeof(pre));
0;
= s;
!= rear)
int u = que[front ++];
for (int v = 1;v <= n;v ++)
{
if (pre[v] != -1||map[u][v] == 0)
continue;
pre[v] = u;
if (v == t)
return 1;
que[rear++] = v;
}
0;
}
int EK (int n)
{
0,i;
(bfs(n))
int min = inf;
for (i = t;i != s;i = pre[i])
min = min > map[pre[i]][i]?map[pre[i]][i]:min;
ans += min;
for (i = t;i != s;i = pre[i])
{
map[pre[i]][i] -= min;
map[i][pre[i]] += min;
}
ans;
}
int main ()
{
T,n,m,v1,v2,cost;
("%d",&T);
1;
--)
scanf ("%d%d",&n,&m);
memset (map,0,sizeof(map));