二分割図の最大マッチング(ハンガリーアルゴリズム)隣接マトリックス版

926 ワード

テンプレートはkuangbinのテンプレートを参照してください.
これらは私達のデータ構造の方面です.
const int maxn=510;
int uN,vN;//v ,u      
int g[maxn][maxn];//    
int linker[maxn];//    ,      linker[v]=u;
bool used[maxn];//     
直接コード:
#include
using namespace std;
const int maxn=510;
int uN,vN;//v ,u      
int g[maxn][maxn];//    
int linker[maxn];//    ,      linker[v]=u;
bool used[maxn];//     
bool dfs(int u)
{
    for(int v=0;v
隣接マトリックス:g[u][v]uとvが接続されていると1にならないと0になります.
dfs検索は、マッチング可能な辺を見つけるために使用され、一致した辺が人によってマッチングされた場合、この辺をマッチングさせる点を申請します.他の辺マッチングはできません.
hunngary関数 返した値はこの二分割図の最大マッチ数です.
アルゴリズムの思想:https://blog.csdn.net/kirito9943/article/details/81448179
二分割図の最大マッチング(ハンガリーアルゴリズム)隣接表のリンク:https://blog.csdn.net/kirito9943/article/details/81436210