關於km演算法 最佳匹配 的個人總結 模板

2021-08-26 12:37:20 字數 794 閱讀 2142

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家老百姓,考慮到每家都要有房住 如果有老百姓沒房子住的話,容易引起不安定因素 每家必須分配到一間房子且只能得到一間房子。另一方面,村長和另外的村領導希望...