第K大看成第K小各种WA。

。。

第K大也就是第n−K+1小。所以就能够愉快的二分答案了

二分答案找出比当前答案小的数的位置的坐标。推断一下能否够选出满足不在同一行同一列的n−K+1个数,然后就能够愉快的跑匈牙利了,对于一个坐标(x,y)假设满足a[x][y]≤当前答案。就把第x行向第y列连边,然后跑匈牙利推断最大匹配是否大于n−K+1

匈牙利真是跑的飞快,然后就卡成rank1 QAQ

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#include<queue>
#include<set>
#include<map>
#define ll long long
#define N 1000001
using namespace std;
int sc()
{
int i=0,f=1; char c=getchar();
while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9')i=i*10+c-'0',c=getchar();
return i*f;
}
int a[255][255];
int head[N],nxt[N],lst[N],tim[N],from[N];
int n,m,tot,mx,TI,K;
void insert(int x,int y)
{
lst[++tot]=y;nxt[tot]=head[x];head[x]=tot;
}
bool Hungary(int x)
{
for(int i=head[x];i;i=nxt[i])
if(tim[lst[i]]!=TI)
{
tim[lst[i]]=TI;
if(!from[lst[i]]||Hungary(from[lst[i]]))
{
from[lst[i]]=x;
return 1;
}
}
return 0;
}
bool jud(int x)
{
int ans=0;tot=0;
for(int i=1;i<=n;i++)head[i]=0;
for(int i=1;i<=m;i++)from[i]=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]<=x) insert(i,j);
for(int i=1;i<=n;i++)
TI++,ans+=Hungary(i);
return ans>=K;
}
int main()
{
n=sc();m=sc(),K=sc();K=n-K+1;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
mx=max(mx,a[i][j]=sc());
int l=1,r=mx;
while(l!=r)
{
int mid=l+r>>1;
if(jud(mid))r=mid;
else l=mid+1;
}
cout<<l;
return 0;
}

4443: [Scoi2015]小秃玩矩阵|二分答案|匈牙利的更多相关文章

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

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

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

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

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

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

  4. LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配

    #2006. 「SCOI2015」小凸玩矩阵 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

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

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=4443 题解: 二分答案,判断最大匹配是否>=n-k+1: #include< ...

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

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

  7. bzoj 4443: [Scoi2015]小凸玩矩阵

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

  8. BZOJ 4443 [Scoi2015]小凸玩矩阵(二分答案+二分图匹配)

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

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

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

随机推荐

  1. [Apple开发者帐户帮助]六、配置应用服务(1.2)Apple Pay:在网络上配置Apple Pay

    网上Apple Pay允许用户在您的网络应用中购买商品和服务. 首先在您的开发者帐户中创建一个商家标识符,该标识符可以将Apple Pay唯一标识为能够接受付款的商家.您可以为多个本机和Web应用程序 ...

  2. 有关于dict(字典)的特性与操作方法

    有关于dict(字典)的特性与操作方法 1.字典的特性 语法: dic = {key1 : value1,key2 : value2,key3 : value3............} 注:字典中k ...

  3. JavaScript 获取星期几函数

    function getDayofWeek() {            var day = "";            var time = new Date();       ...

  4. doctype声明 过渡transitional 严格strict 框架frameset

    DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本. 其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义 ...

  5. 认识JDK、JRE、JVM

    JDK.JRE.JVM之间的关系: 首先看看JDK与JRE的区别与联系,如下图所示: 由图可知: JDK = JRE + Tools&Tool APIs JDK的核心是Java SE API. ...

  6. Visual Studio切换界面显示语言

    [工具]-[选项]-[环境]-[区域设置]-[语言]-[获取其他语言] 安装后重启即可.

  7. Visual C++ 6.0的界面介绍

      双击Visual C++ 6.0安装目录下的文件启动Visual C++ 6.0,通过“文件”→“新建”可新建一个Win32 Console Application项目.创建好项目后,显示Visu ...

  8. 【Linux】Vi中的各种命令

    Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所做的修 ...

  9. 用JSP实现动态交互

    一.什么是JSP? 1.在HTML中嵌入Java脚本代码 2.由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 3.然后将生成的整个页面信息返回给客户端   二.为什么需要基于B/S技术的 ...

  10. ICCV2015上的GazeTracker论文总结

    SLAM问题先慢慢编译一段时间,赶紧拾起来GazeTrack的事情...... ICCV2015的大部分paper已经可以下载,文章列表在这个位置. http://www.cvpapers.com/i ...