BZOJ4443[Scoi2015][小凸玩矩阵] 二分图最大匹配+二分
2017-10-13 20:02
615 查看
题目链接
题解:二分第K大的值,把小于这个值的边加入图中,再求最大匹配,看能不能找出n-k+1个数<=mid
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 305 ; int lk , w , vis ; int n , m , mid , k ; bool find ( int u ){ for ( int i = 1 ; i <= m ; ++ i ) if ( w [u] [i] <= mid && ! vis [i] ) { vis [i] = 1 ; if ( lk [i] == 0 || find ( lk [i] ) ){ lk [i] = u; return true ; } } return false ; } bool check (){ int ans = 0 ; memset ( lk, 0 , sizeof ( lk ) ); for ( int i = 1 ; i <= n ; ++ i ){ memset ( vis , 0 , sizeof ( vis ) ); ans += find ( i ) ; } return ans > n - k ; } int main() { scanf ( "%d%d%d", &n , &m , &k ); for ( int i = 1 ; i <= n ; ++ i ) for ( int j = 1; j <= m ; ++ j ) scanf ( "%d" , &w [i] [j] ); int l = 1 , r = 1e9 , ans = 1; while ( l <= r ) { mid = ( l + r ) >> 1; if ( check () ) r = mid - 1 , ans = mid ; else l = mid + 1; } printf ( "%d" , l ) ; return 0 ; }
相关文章推荐
- [bzoj4443][Scoi2015]小凸玩矩阵(二分答案+二分图最大匹配)
- BZOJ 4443: [Scoi2015]小凸玩矩阵 二分图最大匹配+二分
- 【bzoj4443】【[Scoi2015]小凸玩矩阵】二分+二分图最大匹配
- 【bzoj4443】【[Scoi2015]小凸玩矩阵】二分+二分图最大匹配
- BZOJ4443(Scoi2015)[小凸玩矩阵]--二分+二分图最大匹配
- 【bzoj4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配
- 【BZOJ4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配
- [BZOJ]4443 [SCOI2015] 小凸玩矩阵 二分答案 + 二分图最大匹配
- 【BZOJ 4443】 [Scoi2015]小凸玩矩阵|二分|最大匹配|匈牙利
- bzoj 4443: [Scoi2015]小凸玩矩阵(二分+二分匹配)
- [bzoj4443][SCOI2015]小凸玩矩阵 最大流+二分
- BZOJ 4443: [Scoi2015]小凸玩矩阵 最大流
- [BZOJ]4443: [Scoi2015]小凸玩矩阵 二分+二分图匹配
- [二分+二分图匹配]BZOJ 4443: [Scoi2015]小凸玩矩阵 题解
- bzoj 4443: [Scoi2015]小凸玩矩阵 二分答案+网络流
- BZOJ 4443: [Scoi2015]小凸玩矩阵 最大流
- 匈牙利算法+二分答案 BZOJ 4443 小凸玩矩阵 SCOI 2015 题解
- BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配
- BZOJ 4443: [Scoi2015]小凸玩矩阵 二分 网络流
- BZOJ 4443 [Scoi2015]小凸玩矩阵——二分+二分图匹配