二分匹配 最大匹配 人員分配 鏈結矩陣

2021-10-23 15:20:46 字數 801 閱讀 8696

設有m個工人x1, x2, …, xm,和n項工作y1, y2, …, yn,規定每個工人至多做一項工作,而每項工作至多分配一名工人去做。由於種種原因,每個工人只能勝任其中的一項或幾項工作。問應怎樣分配才能使盡可能多的工人分配到他勝任的工作。這個問題稱為人員分配問題。

第一行兩個整數m,n分別為工人數和工作數。

接下來乙個整數s,為二分圖的邊數。

接下來s行,每行兩個數ai,bi表示第ai個工人能勝任第bi份工作

乙個整數,表示最多能讓多少個工人派到自己的勝任的工作上。

334

1221

3313

3
#include

#include

#include

using

namespace std;

int n, m, s, q, tot, ans;

int head[

10005

], link[

1005

], vis[

1005

], f[

10005][

10005];

bool find (

int i)

return0;

}int main (

)for

(int i=

1; i<=n; i++

) printf (

"%d"

, ans)

;return0;

}

二分 二分匹配

給了乙個矩陣 n行m列 選n個數 要保證這n個數不在同行同列,計算出第k大的數最小 二分答案,然後我們對於每個a i j mid的我們就i和j建立一條邊 然後二分求最大匹配必須大於等於n k 1 因為是第k大 而不是第k小 坑了好久才發現 include include include includ...

過山車(最大二分匹配)

題目鏈結 problem description rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和x...

二分匹配演算法

匈牙利演算法求二分匹配 下 include includeusing namespace std int v 頂點數 vectorg max v 圖的鄰接表表示 int match max v 所匹配的頂點 bool used max v dfs 中用到的訪問標記 向圖中增加一條連線 u 和 v 的...