km演算法具體講解請看:
本文只是模板
#include #include#includeconst int inf = 0x3f3f3f3f;
using namespace std;
int book[1001];//記錄當前男生是否已經被哪個女生選中,單身為0
int used_boy[1001];//記錄哪些男生在這一輪中被用了
int used_girl[1001];//記錄哪些女生在這一輪中被用了
int ex_boy[1001];//男生期望
int ex_girl[1001];//女生期望
int slack[1001];//記錄男生俘獲女生芳心所需的最小的期望值,用於待會女生找不到有好感的人之後最低降低自己的期望值
int need[1001][1001];//need[i][j]表示女生i對那幾個男生有好感 如果對j有好感那麼need[i][j]=1
int n;
bool find(int i)//為女生i尋找歸宿
}else
} return false;
}int km() }
for(i=0;iint min1=inf;//找出女生要降低的最小的期望
for(int j=0;j//對所有的上一輪中用到的繼續期望的更新
for(j=0;jelse
if(used_girl[j]==1)
} } }
}int main(int argc, char *argv)
km演算法與最佳匹配
km演算法 該演算法是通過給每個頂點乙個標號 叫做頂標 來把求最大權匹配的問題轉化為求完備匹配的問題的。設頂點xi的頂標為a i 頂點yj的頂標為b j 頂點xi與yj之間的邊權為w i,j 在演算法執行過程中的任一時刻,對於任一條邊 i,j a i b j w i,j 始終成立。km演算法的正確性...
完美匹配 KM演算法 HDU總結
size medium kidx 的解題報告 img b size medium 首先獻上模板 size b define m 505 define inf 0x3fffffff bool sx m sy m int match m w m m n,m,d,lx m ly m n 左集元素個數 m ...
奔小康賺大錢 最佳匹配 KM()演算法
傳說在遙遠的地方有乙個非常富裕的村落,有一天,村長決定進行制度改革 重新分配房子。這可是一件大事,關係到人民的住房問題啊。村里共有n間房間,剛好有n家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一間房子。另一方面,村長和另外的村領導希望...