写二分图匹配匈牙利板子
洛谷 3386 WA #2
百思不得其解
翻看讨论区 并 ctrl f
发现同样情况的帖子
发现原因是函数内循环遍历的是左侧点
有如下感受
1.wssb
2.洛谷的数据怎么这么水
以上,警示后人
附WA 代码
#include<bits/stdc++.h>
using namespace std;
const int N= 505;
const int M= (int)5e4;
int n,m,c;
int g[505][505];
int match[N];
bool vis[N];
int ans;
bool Ntr(int u)
{
for(int i=1;i<=n;i++) //事故多发地段
{
if(g[u][i]==1 && !vis[i])
{
vis[i]=1;
if(!match[i] || Ntr(match[i]))
{
match[i]=u;
return 1;
}
}
}
return 0;
}
int main()
{
cin>>n>>m>>c;
for(int i=1;i<=c;i++)
{
int u,v;
scanf("%d%d",&u,&v);
g[u][v]=1;
}
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
if(Ntr(i)) ans++;
}
cout<<ans;
return 0;
}
标签:const,WA,int,警钟,bool,洛谷,505
From: https://www.cnblogs.com/yeyou26/p/18001380