BZOJ 4443

二分答案 + 二分图匹配

外层二分一个最小值,然后检验是否能选出$n - k + 1$个不小于当前二分出的$mid$的数。对于每一个$a_{i, j} \geq mid$,从$i$向$j + n$连一条边,然后跑二分图最大匹配即可。

菜的很,二分图匹配都写不对……

注意数组要开到双倍$n$。

时间复杂度$O(nmlogn)$。

Code:

#include <cstdio>
#include <cstring>
using namespace std; const int N = ;
const int M = 2e5 + ;
const int inf = << ; int n, m, k, a[N][N], tot, head[N], mat[N];
bool vis[N]; struct Edge {
int to, nxt;
} e[M]; inline void add(int from, int to) {
e[++tot].to = to;
e[tot].nxt = head[from];
head[from] = tot;
} inline void read(int &X) {
X = ; char ch = ; int op = ;
for(; ch > ''|| ch < ''; ch = getchar())
if(ch == '-') op = -;
for(; ch >= '' && ch <= ''; ch = getchar())
X = (X << ) + (X << ) + ch - ;
X *= op;
} bool dfs(int x) {
for(int i = head[x]; i; i = e[i].nxt) {
int y = e[i].to;
if(vis[y]) continue;
vis[y] = ;
if(!mat[y] || dfs(mat[y])) {
mat[y] = x;
return ;
}
}
return ;
} inline bool chk(int mid) {
memset(head, , sizeof(head)); tot = ;
memset(mat, , sizeof(mat));
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
if(a[i][j] <= mid) add(i, j + n); int res = ;
for(int i = ; i <= n; i++) {
memset(vis, , sizeof(vis));
if(dfs(i)) ++res;
} return res >= n - k + ;
} int main() {
read(n), read(m), read(k);
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
read(a[i][j]); int ln = , rn = inf, mid, res;
for(; ln <= rn; ) {
mid = ((ln + rn) >> );
if(chk(mid)) rn = mid - , res = mid;
else ln = mid + ;
} printf("%d\n", res);
return ;
}

Luogu 4251 [SCOI2015]小凸玩矩阵的更多相关文章

  1. 洛谷 4251 [SCOI2015]小凸玩矩阵

    [题解] 二分答案+二分图匹配. 先二分最小值Min,然后扫一遍这个矩阵,把满足a[i][j]<=Min的i,j连边,之后跑二分图匹配,如果最大匹配数大于等于n-k+1,当前的Min即是合法的. ...

  2. [LUOGU] P4251 [SCOI2015]小凸玩矩阵

    行列看成点,格子看成边,二分一个边权,删去大于它的边,新图上的最大流>k则答案可以更优,小于k则调整左边界. #include<algorithm> #include<iost ...

  3. BZOJ_4443_[Scoi2015]小凸玩矩阵_二分+二分图匹配

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

  4. 2018.06.30 BZOJ4443: [Scoi2015]小凸玩矩阵(二分加二分图匹配)

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

  5. BZOJ 4443: [Scoi2015]小凸玩矩阵 最大流

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

  6. 【BZOJ4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配

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

  7. bzoj 4443 [Scoi2015]小凸玩矩阵 网络流,二分

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

  8. 图论(网络流):[SCOI2015]小凸玩矩阵

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

  9. 【刷题】BZOJ 4443 [Scoi2015]小凸玩矩阵

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

随机推荐

  1. 【spring源码学习】spring的IOC容器在初始化bean过程

    [一]初始化IOC的bean的时候Spring会执行的一些回调方法 (1)spring bean创建的前置处理 =>ApplicationContextAwareProcessor 在创建bea ...

  2. LA3263 That Nice Euler Circuits

    题意 PDF 分析 欧拉定理:设平面内顶点数.边数.面数分别为\(V,E,F\),则\(V+F-E=2\). 枚举每对线段求交点,注意去重. 另外注意第n个端点和第一个端点重合. 时间复杂度\(o(T ...

  3. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom

    传送门 题目大意:形成一个环的牛可以跳舞,几个环连在一起是个小组,求几个小组. 题解:tarjian缩点后,求缩的点包含的原来的点数大于1的个数. 代码: #include<iostream&g ...

  4. OpenSSH 使用技巧

    1. 取消 OpenSSH 初次连接 yes 确认 在脚本中有时会使用ssh进行远程连接操作,如果是第一次 ssh 连接往往会提示你是否确认连接并要求你输入yes, 才能继续.如何才能避免这个步骤呢? ...

  5. poj1011---DFS

    题目的大意是给了你有限个棍子以及每个棍子的长度,而且所有的棍子都是由有限个长度相同的棍子截断得到的,让你求被截棍子的最小长度 搜索剪枝神题,做的我够呛 提供一个比较好的解题报告  http://www ...

  6. sourcetree 分支的创建合并

    sourcetree 分支的创建合并,提交 https://blog.csdn.net/qq_34975710/article/details/74469068 sourcetree测试版本的配置忽略 ...

  7. apache通过.htaccess(rewrite)判断手机电脑跳转-手机用户重定向到手机版

    自动判断.重定向的办法也有几种: 使用网站构建的程序(例如PHP)来判断.重定向:使用服务器上的Web服务(例如Apache)来判断.重定向. 在Apache中设置重定向有两个办法: 在网站的http ...

  8. npm笔记和bower

    生成package.json文件的方式就是dos下进入该文件夹,然后执行 npm init Bower简单点儿说就是通过nodejs直接下载GitHub上的js源码 首先你得有node,这里就不多做介 ...

  9. zufeoj 花生(The Peanuts)

    花生(The Peanuts) 时间限制: 1 Sec  内存限制: 128 MB提交: 3  解决: 2[提交][状态][讨论版] 题目描述 鲁宾逊先生和他的宠物猴,多多,非常喜欢花生.有一天,他们 ...

  10. HUSTOJ 昆虫繁殖(递推)

    昆虫繁殖 时间限制: 1 Sec  内存限制: 128 MB提交: 25  解决: 16[提交][状态][讨论版][命题人:quanxing] 题目描述 科学家在热带森林中发现了一种特殊的昆虫,这种昆 ...