穩定婚姻匹配問題模板
阿新 • • 發佈:2019-02-17
int fin 婚姻 mes def names esp 數組 else
用於:
給出所有男的和女的 對對方的好感度
要求不出現:
如果a與b匹配 c與d匹配 但是a相比b來說更加愛c 且c相比d來說更加愛a
主要需要處理的是兩個數組
boy[i][j] 第i個男的的第j個喜歡的女的的編號
girl[i][j] 第i個女的 對第j個男的的好感度
#include<bits/stdc++.h> using namespace std; #define N 1000 int rank1[N];//歸零 int match_boy[N],match_girl[N];//匹配情況 int boy[N][N],girl[N][N];//已說明 intgs() { memset(match_boy,0,sizeof match_boy); memset(match_girl,0,sizeof match_girl); memset(rank1,0,sizeof rank1); while(flag) { flag=0; for(int i=1;i<=n;i++) { if(!match_boy[i]) {int temp=boy[i][rank1[i]++]; if(!match_girl[temp]) match_boy[i]=temp,match_girl[temp]=i; else if( girl[temp][i]>girl[temp][match_girl[temp]] ) { match_boy[ match_girl[temp] ]=0; match_boy[i]=temp; match_girl[temp]=i; } flag=1; } } } }
穩定婚姻匹配問題模板