匈牙利算法
#include<stdio.h>
#define MAX 100000
int haogan[MAX][MAX]={0};//好感矩阵
int girl[MAX];//女孩的男朋友
int flag[MAX];//对女孩进行标记,在函数中使用一次,标记为一,初始为零
int n;
int main()
{
int find(int x);
int i,j;
printf("请输入需要配对的男女对数\n");
scanf("%d",&n);
printf("请输入好感矩阵,如女M与男N有好感记为hangan[M][N]=1\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&haogan[i][j]);//输入好感矩阵
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
flag[j]=0;//标记清零
find(i);
}
for(i=1;i<=n;i++)
printf("男%d号可与女%d号配对\n",girl[i],i);
return 0;
}
int find(int x)//为男孩x找女朋友
{