BZOJ 4443: [Scoi2015]小凸玩矩阵 二分图最大匹配+二分

时间:2021-07-09 15:03:44

题目链接:

http://www.lydsy.com/JudgeOnline/problem.php?id=4443

题解:

二分答案,判断最大匹配是否>=n-k+1;

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std; const int maxn=;
const int INF=1e9;
int mat[maxn][maxn]; int n,m,k;
int lef[maxn],_t[maxn];
vector<int> G[maxn]; bool match(int i){
for(int j=;j<G[i].size();j++){
int v=G[i][j];
if(_t[v]==){
_t[v]=;
if(!lef[v]||match(lef[v])){
lef[v]=i;
return true;
}
}
}
return false;
} bool check(int x){
for(int i=;i<=n;i++) G[i].clear();
memset(lef,,sizeof(lef));
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(mat[i][j]<=x) G[i].push_back(j);
}
}
for(int i=;i<=n;i++){
memset(_t,,sizeof(_t));
match(i);
}
int cnt=;
for(int i=;i<=m;i++){
if(lef[i]) cnt++;
}
if(cnt>=n-k+) return true;
return false;
} int main(){
while(scanf("%d%d%d",&n,&m,&k)==&&n){
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
scanf("%d",&mat[i][j]);
}
}
int low=,hig=INF;
while(low<hig-){
int mid=low+(hig-low)/;
if(check(mid)) hig=mid;
else low=mid;
}
printf("%d\n",hig);
}
return ;
}

BZOJ 4443: [Scoi2015]小凸玩矩阵 二分图最大匹配+二分的更多相关文章

  1. BZOJ 4443&colon; &lbrack;Scoi2015&rsqb;小凸玩矩阵 最大流

    4443: [Scoi2015]小凸玩矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4443 Description 小凸和小方是好 ...

  2. bzoj 4443 &lbrack;Scoi2015&rsqb;小凸玩矩阵 网络流&comma;二分

    [Scoi2015]小凸玩矩阵 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1564  Solved: 734[Submit][Status][Di ...

  3. bzoj 4443&colon; &lbrack;Scoi2015&rsqb;小凸玩矩阵

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 149  Solved: 81[Submit][Status][Discuss] Description ...

  4. 【刷题】BZOJ 4443 &lbrack;Scoi2015&rsqb;小凸玩矩阵

    Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或同一列,现小凸想知道选出来的N个数中第K大的数字的最 ...

  5. BZOJ 4443 &lbrack;Scoi2015&rsqb;小凸玩矩阵(二分答案&plus;二分图匹配)

    [题目链接]http://www.lydsy.com/JudgeOnline/problem.php?id=4443 [题目大意] 从矩阵中选出N个数,其中任意两个数字不能在同一行或同一列 求选出来的 ...

  6. &lbrack;luogu4251 SCOI2015&rsqb; 小凸玩矩阵 &lpar;二分图最大匹配&rpar;

    传送门 Description Input Output 输出包含一行,为选出的 n 个数中第 k 大数的最小值. Sample Input 输入样例1: 2 3 1 1 2 4 2 4 1 输入样例 ...

  7. 2018&period;06&period;30 BZOJ4443&colon; &lbrack;Scoi2015&rsqb;小凸玩矩阵(二分加二分图匹配)

    4443: [Scoi2015]小凸玩矩阵 Time Limit: 10 Sec Memory Limit: 128 MB Description 小凸和小方是好朋友,小方给小凸一个N*M(N< ...

  8. BZOJ&lowbar;4443&lowbar;&lbrack;Scoi2015&rsqb;小凸玩矩阵&lowbar;二分&plus;二分图匹配

    BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个 ...

  9. 【BZOJ4443】&lbrack;Scoi2015&rsqb;小凸玩矩阵 二分&plus;二分图最大匹配

    [BZOJ4443][Scoi2015]小凸玩矩阵 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或 ...

随机推荐

  1. Go语言总结(图片打开略慢请知晓)

  2. 实现IComparable、IComparer接口

    using System;using System.Collections.Generic; public class MyClass{ public class Employee:IComparab ...

  3. bzoj1036 &lbrack;ZJOI2008&rsqb;树的统计Count

    1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 12646  Solved: 5085 [Subm ...

  4. 重装Windows系统后,Linux系统启动引导失败

    说明:我的电脑是在装了Windows系统后,装的Linux系统,所以启动引导是Linux干的活.可是,今天重装了Windows系统,启动引导就换成了Windows的,Windows的启动引导把Linu ...

  5. 锋利的jQuery

    今天总要找点东西学习,其实有很多东西要记录,慢慢写,今天看书吧,这几天把这本书看完,这里记一些要点 从头开始记吧 第一章 认识jQuery $就是jQuery的简写 $(function(){}) 就 ...

  6. TypeScript入门-基本数据类型

    ▓▓▓▓▓▓ 大致介绍 TypeScript是由C#语言之父Anders Hejlsberg主导开发的一门编程语言,TypeScript本质上是向JavaScript语言添加了可选的静态类型和基于类的 ...

  7. python&lowbar;改变字符串中文本格式?

    案例: 某软件的日志文件,其中日期格式为year-moth-day: 2016-04-21 10:50:30 python 2014-05-22 10:50:30 python 2017-06-23 ...

  8. Codeforces Round &num;491 &lpar;Div&period; 2&rpar;

    Codeforces Round #491 (Div. 2) https://codeforces.com/contest/991 A #include<bits/stdc++.h> us ...

  9. git 入门教程之本地和远程仓库的本质

    本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑. 远程仓库不一定非得是 github 那种专门的"*服务器",甚至局域网的另外一台电脑也可以充当&q ...

  10. Set接口HashSet实现类

    java.util.Set接口 extends Collection接口 Set特点: 1.不允许有重复的元素 2.没有索引,没有带索引的方法,也不能使用普通的for遍历 java.util.Hash ...