bzoj4443 小凸玩矩阵
二分+最大check
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<cmath>
#include<ctime>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define rre(i,r,l) for(int i=(r);i>=(l);i--)
#define re(i,l,r) for(int i=(l);i<=(r);i++)
#define Clear(a,b) memset(a,b,sizeof(a))
#define inout(x) printf("%d",(x))
#define douin(x) scanf("%lf",&x)
#define strin(x) scanf("%s",(x))
#define LLin(x) scanf("%lld",&x)
#define op operator
#define CSC main
typedef unsigned long long ULL;
typedef const int cint;
typedef long long LL;
using namespace std;
void inin(int &ret)
{
ret=;int f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=;ch=getchar();}
while(ch>=''&&ch<='')ret*=,ret+=ch-'',ch=getchar();
ret=f?-ret:ret;
}
int n,m,k,a[][],Max,s,t,ed;
int head[],next[],zhi[],cap[];
void add(int a,int b,int c)
{
next[++ed]=head[a],head[a]=ed,zhi[ed]=b,cap[ed]=c;
next[++ed]=head[b],head[b]=ed,zhi[ed]=a,cap[ed]=;
}
queue<int>h;int dis[];
bool bfs()
{
Clear(dis,);
dis[s]=;h.push(s);
while(!h.empty())
{
int x=h.front();h.pop();
for(int i=head[x];i;i=next[i])if(cap[i]&&!dis[zhi[i]])
dis[zhi[i]]=dis[x]+,h.push(zhi[i]);
}
return dis[t];
}
int dfs(int x,int Max)
{
if(!Max||x==t)return Max;
int ret=,temp;
for(int i=head[x];i;i=next[i])if(cap[i]&&dis[zhi[i]]==dis[x]+)
{
temp=dfs(zhi[i],min(Max,cap[i]));
ret+=temp,Max-=temp;
cap[i]-=temp,cap[i^]+=temp;
if(!Max)return ret;
}
if(!ret)dis[x]=-;
return ret;
}
int dinic()
{
int ret=;
while(bfs())ret+=dfs(s,);
return ret;
}
bool check(int x)
{
Clear(head,);ed=;
re(i,,n)re(j,,m)
if(a[i][j]<=x)add(i,j+n,);
re(i,,n)add(s,i,);
re(i,,m)add(i+n,t,);
int ret=dinic();
if(ret>=n-k+)return ;
return ;
}
int main()
{
inin(n),inin(m),inin(k);s=n+m+,t=s+;
re(i,,n)re(j,,m)inin(a[i][j]),Max=max(Max,a[i][j]);
int l=,r=Max,mid,ans;
while(l<=r)
{
mid=(l+r)>>;
if(check(mid))ans=mid,r=mid-;
else l=mid+;
}
printf("%d",ans);
return ;
}
bzoj4443 小凸玩矩阵的更多相关文章
- 【BZOJ4443】小凸玩矩阵(二分答案,二分图匹配)
[BZOJ4443]小凸玩矩阵(二分答案,二分图匹配) 题面 BZOJ Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两 ...
- 【BZOJ4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配
[BZOJ4443][Scoi2015]小凸玩矩阵 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或 ...
- 2018.06.30 BZOJ4443: [Scoi2015]小凸玩矩阵(二分加二分图匹配)
4443: [Scoi2015]小凸玩矩阵 Time Limit: 10 Sec Memory Limit: 128 MB Description 小凸和小方是好朋友,小方给小凸一个N*M(N< ...
- BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配
BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个 ...
- 「SCOI2015」小凸玩矩阵 解题报告
「SCOI2015」小凸玩矩阵 我好沙茶啊 把点当边连接行和列,在外面二分答案跑图的匹配就行了 我最开始二分方向搞反了,样例没过. 脑袋一抽,这绝壁要费用流,连忙打了个KM 然后wa了,一想这个不是完 ...
- LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配
#2006. 「SCOI2015」小凸玩矩阵 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 ...
- BZOJ 4443: [Scoi2015]小凸玩矩阵 最大流
4443: [Scoi2015]小凸玩矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4443 Description 小凸和小方是好 ...
- AC日记——「SCOI2015」小凸玩矩阵 LiBreOJ 2006
「SCOI2015」小凸玩矩阵 思路: 二分+最大流: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 300 ...
- loj #2006. 「SCOI2015」小凸玩矩阵
#2006. 「SCOI2015」小凸玩矩阵 题目描述 小凸和小方是好朋友,小方给小凸一个 N×M N \times MN×M(N≤M N \leq MN≤M)的矩阵 A AA,要求小凸从其中选出 ...
随机推荐
- wordpress去掉<link rel='dns-prefetch' href='//s.w.org' />
我们在用wordpress建站时经常会看到<link rel='dns-prefetch' href='//s.w.org' />,应该是为了从s.w.org预获取表情和头像,目的是提高网 ...
- composer安装其实可以很简单 两行命令就解决了
最近接了一个cakephp项目,就想着用composer安装实施,因为Composer 可以方便地帮你安装项目中声明所依赖的外部工具库(libraries).之前没有接触过,相对比较陌生,但是相信ph ...
- PropTypes使用
PropTypes防止后期代码传参数错误,所以加一个校验, 代码: import React, {Component,PropTypes} from 'react'; import {View, Te ...
- Android支持全面屏设置
在AndroidManifest的application里面设置resizeableActivity的属性为true <application android:name=".Compl ...
- Replication主要配置项
八.Replication主要配置项(配置文件) 1.log_bin:指定binlog文件的名称,同时也表示开启binlog功能,在replication模式下,master上必须开启log_bin, ...
- 001-mock.js安装使用
一.基础 1.1.安装 //安装 npm install mockjs --save 1.2.使用 // 使用 Mock var Mock = require('mockjs') Mock.mock( ...
- 在WCF服务端的web.config中增加如下设置,具体的错误会记录在.svclog文件中
<system.diagnostics> <sources> <source name="System.ServiceModel" switchVal ...
- HTML中--定义header和footer高度中间自适应
<html> <head> <meta charset="utf-8" /> <title></title> <s ...
- equals和contains的区别
equals只能判断两个变量的值是否相等.contains常用与集合中判断某个对象是否含有这个元素equals是需要两个对象完全相同才会返回true,而contains是要循环遍历容器里的所有内容后判 ...
- abap form格式的异常处理
1: form 中有异常时,需要用 raising 将异常抛出. *&------------------------------------------------------------- ...