[HNOI2006]超级英雄Hero

61.187.179.132:8080/JudgeOnline/showproblem
太TMD恶心了。。一眼就看出是匹配。。关键是这个答题是要连续的!
也就是说从1到开始找增广轨找不到就不能再找了。。结果WA了3次
Code:
#include<iostream>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
const int V=1200;
int E[V][2],Link[V],n,m;
bool vis[V];
bool dfs(int x)
{
if(vis[x]) return 0;
vis[x]=1;
for(int i=0,t;i<2;i++)
{
t=E[x][i];
if(Link[t]==-1||dfs(Link[t]))
return Link[t]=x,1;
}
return 0;
}
int main()
{
cin>>n>>m;
rep(i,m) cin>>E[i][0]>>E[i][1];
rep(i,n) Link[i]=-1;
int ans;
for(ans=0;ans<m;ans++){memset(vis,0,sizeof(vis)); if(!dfs(ans)) break;}
cout<<ans<<endl;
}

One thought on “[HNOI2006]超级英雄Hero

Leave a Reply

Your email address will not be published. Required fields are marked *