裸的匈牙利算法求二分图
#include #include #include #include #include #include #include #include #include using namespace std; #define INF 1e9 #define maxn 110 #define rep(i,x,y) for(int i=x;i<=y;i++) #define mset(x) memset(x,0,sizeof(x)) int n, m; int a[maxn], b[maxn]; vector G[maxn]; bool vis[maxn]; int link[maxn]; bool find(int u) { for(int i=0; i>n; rep(i,1,n) scanf("%d", &a[i]); cin>>m; rep(i,1,m) scanf("%d", &b[i]); rep(i,1,n) G[i].clear(); rep(i,1,n){ rep(j,1,m){ if(abs(a[i] - b[j]) <= 1) G[i].push_back(j); } } printf("%d\n", hungary()); return 0; }