Hall定理小記

2022-09-21 07:21:11 字數 804 閱讀 3978

hall定理:一張二分圖有完美匹配(即最大匹配為 \(\min\\) )

當且僅當任意乙個點集 \(x'\) 所有能直接到達的點集 \(y'\) 所組成的匯出子圖有完美匹配

推論:一張二分圖的最大匹配為 \(\min\,|y|\}\)

有 \(n\) 個班級(\(n\leq 2\times 10^5\)),每個班級有 \(a_i\) 名學生,該班共生產 \(b_i\) 杯奶茶,

每個學生只能購買其它班級的奶茶,問最多有多少個學生能夠喝到奶茶

可以發現直接建圖就是乙個二分圖求最大匹配,但肯定會超時。

根據推論,考慮讓 \(|x'|-|y'|\) 盡量大。

分類討論一下,只有 \(x'\) 僅為乙個班級時,這個值最大。

那麼直接 \(o(n)\) 求 \(\max\\) 即可

#include #include using namespace std;

const int n=200011;

typedef long long lll;

int n,a[n],b[n]; lll stu,tea,ans;

int iut()

void print(lll ans)

lll min(lll a,lll b)

int main()

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

ans=max(ans,a[i]-(tea-b[i]));

print(min(stu-ans,tea)),putchar(10);

} return 0;

}

未完待續

Hall定理 獎章

n nn個人上工,第i ii個人連續工作a ia i ai 天,休息a ia i ai 天 每天可以給乙個上工的人發獎章,求給每個人發k kk個獎章需要的最少天數 大家看到這道題第一反應就去lcm了 結果這道題二分圖qwq 複製k kk份工人,每個點與所有能上工的天匹配 如果有完美匹配,則這個天數合...

關於Hall定理的學習

hall 定理是二分圖匹配的相關定理 用於判斷二分圖是否存在完美匹配 存在完美匹配的二分圖即滿足最大匹配數為 min x y 的二分圖,也就是至少有一邊的點全部被匹配到了 設 m u 為與 u 中的點相連的點集,乙個二分圖 u,v u v 存在完美匹配,滿足對於任意點集 x u 都有 m x x 連...

lucas定理學習小記

lucas是數論定理,運用到oi上時,就會發現非常便利,它可以在極快的時間內算出c n,m mod p,p為質數。時間複雜度為o log 以p為底 n p lucas定理 c n,m p c n p,m p c n p,m p p 我們令n sp q m tp r q r p 那麼 在程式設計時你只...