View Code
/*==================================================*\| POJ2195 边上有权值求取值最大(最小)的完全匹配\*==================================================*/int N,M, cntm,cnth;int slack[MM],lx[MM],ly[MM], pre[MM], maze[MM][MM];bool sx[MM],sy[MM];struct Point{ int x,y; }pointm[MM],pointh[MM];void get_data() { cntm=cnth=1; for(i=1;i<=N;i++) { scanf("%s",ch); for(j=0;ch[j];j++) { if(ch[j]=='m') pointm[cntm].x=i,pointm[cntm++].y=j+1; if(ch[j]=='H') pointh[cnth].x=i,pointh[cnth++].y=j+1; } } for(i=1;itemp) slack[i]=temp; } return false;}int bestmatch() { //返回权值最大(最小的完全匹配) int i,j,k; for(i=1;i slack[j]) dx=slack[j]; } for(j=1;j