BZOJ 1191 超级英雄hero(二分图匹配,匈牙利算法)

来源:互联网 发布:淘宝店宝贝描述 编辑:程序博客网 时间:2024/04/25 22:14

题目链接:BZOJ 1191

这道题就是裸的二分图匹配,跑匈牙利算法即可。我用的邻接矩阵写的,这道题的话用临街链表写空间和时间都应该更可观。

#include<cstdio>#include<cstring>#include<iostream>using namespace std;int N,M,tot=0;int map[1001][1001],vis[1001],belong[1001];bool find(int x){for(int i=0;i<N;i++)if(map[x][i]&&!vis[i]){vis[i]=1;if(!belong[i]||find(belong[i])){belong[i]=x; return true;}}return false;}int main(){scanf("%d%d",&N,&M);for(int i=1;i<=M;i++){int x,y;scanf("%d%d",&x,&y);map[i][x]=1; map[i][y]=1;}for(int i=1;i<=M;i++){memset(vis,0,sizeof(vis));if(find(i))tot++;else break;}printf("%d",tot);return 0;}


0 0
原创粉丝点击