SCOI2015 小凸玩矩陣

2022-05-19 09:45:12 字數 639 閱讀 5021

題目:洛谷p4251、bzoj4443。

題目大意:

有乙個\(n\times m(n\leq m)\)的矩陣,要選出n個數,使得這n個數既不同行也不同列。問選的數中第k大的數最小可以是多少。

解題思路:

首先二分答案,然後只要判斷,是否能選擇至少n-k+1個數,它們的值都不超過當前的答案。

然後很簡單,對每個小於等於當前答案的數,行向列連邊。做二分圖匹配即可。

時間複雜度\(n^2\log\)級別。

c++ code:

#include#include#includeint n,m,k;

inline int readint()

int p[252][252],a[252][252],dy[252],vis[252];

int dfs(int u)

}return 0;

}bool ok(int x)

return ans>=n-k+1;

}int main()

printf("%d\n",ans);

return 0;

}

SCOI2015 小凸玩矩陣

題目很明顯的乙個事情,求第 k 大的最小值,一般採用的做法是二分 有人會問,但是不滿足二分性啊,接著往下看 考慮二分答案,但是如何檢驗 mid 是對還是錯,考慮每次只能取 mid 的數字,如果能取到 n k 1 個數字以上就可以,至於看能否取到 n k 1 個,採用二分圖匹配,左邊的點是行,右邊的點...

SCOI2015 小凸玩矩陣 題解

題意見題面。我們容易看出,答案肯定是單調的,所以便想到二分,對於判斷能否選到,我們發現行和列的限制就是二分圖匹配的模型,所以直接套個二分圖就好啦。注意 是第k kk大的數!所以判斷時為n k 1 n k 1 n k 1,因為這個wa了好幾遍qaq include include include us...

SCOI2015 小凸玩密室

演算法難度5,思維難度7,難度6 給定一棵n nn個點的完全二叉樹,樹邊帶權,點帶val x val x val x 的權值。定義兩個點的距離dis u,v dis u,v dis u,v 為u uu到v vv的最短路徑上經過的邊權之和。你一開始可以選擇乙個起始點,並點亮這個點,這一步不需要花費。你...