KM演算法模板

2021-08-15 16:03:10 字數 747 閱讀 8059

km演算法是用來求完全二分圖最大完美匹配的演算法,其原理是不斷尋找增廣路(增廣路定理)。相關性質:在最大二分圖匹配圖中,w[x][y] <= lx[x] + ly[y]

#include 

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 2505;

const

int inf = 0x3f3f3f3f;

int n, m;

int w[maxn][maxn];

int lx[maxn], ly[maxn];

int left[maxn];

bool s[maxn], t[maxn];

bool match(int i)}}

return

false;

}void update()

}for (int i = 1; i <= n; i++)

for (int j = 1; j <= m; j++)

}void km()

for (int i = 1; i <= n; i++)

}}int main()

return

0;}

KM演算法模板

這是hdu2255 include include include include includeusing namespace std const int maxn 305 const int inf 0x3f3f3f3f int love maxn maxn 記錄每個妹子和每個男生的好感度 in...

模板 KM演算法

km 演算法計算帶權二分圖最優匹配 模板一 dfs 演算法,時間複雜度 o n 4 const int maxn 310 const ll inf 0x3f3f3f3f3f3f3f3f match i j表示右邊的第i個點匹配左邊的第j個點,也可能這兩個點之間其實沒有連邊,也就是權值為零 int n...

KM演算法模板

int maxdata 1000000000 int w arraysize arraysize 權值 int match arraysize 儲存匹配資訊,其中i為y中的頂點標號,match i 為x中頂點標號 int lx arraysize ly arraysize slack arraysi...