bzoj4443 [Scoi2015]小凸玩矩阵
2016-03-25 18:45
363 查看
第k大==第n-k+1小,这样转换就可以二分求最小值了;
因为我们要求的是满足存在一种方法使<=所枚举数的元素个数
大于等于n-k+1的最小值;判定用二分图匹配;
因为我们要求的是满足存在一种方法使<=所枚举数的元素个数
大于等于n-k+1的最小值;判定用二分图匹配;
#include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=(n);i++) using namespace std; const int N=251; int a ,n,m,k,pei ,vis ; bool dfs(int x,int op){ rep(i,1,m)if(a[x][i]<=op && !vis[i]){vis[i]=1; if(!pei[i] || dfs(pei[i],op)){ pei[i]=x;return true; } } return false; } bool ok(int op){int cnt=0;memset(pei,0,sizeof(pei)); rep(i,1,n){memset(vis,0,sizeof(vis)); if(dfs(i,op))cnt++;} return cnt>=n-k+1; } int main(){//freopen("in.in","r",stdin); scanf("%d%d%d",&n,&m,&k); rep(i,1,n)rep(j,1,m)scanf("%d",&a[i][j]); int l=1,r=1e+9; while(l<r){ int mid=(l+r)>>1; if(ok(mid))r=mid; else l=mid+1; }printf("%d",l); }
相关文章推荐
- IOS-58-阶段性小细节汇总
- python操作Excel读写--使用xlrd
- UVA 548 Tree(建树树的遍历)
- [置顶] openflow初学者入门笔记一(openflow 1.0 and openflow 1.3)
- c语言字符串-常用操作(3) 字符串 翻转
- ESP8266-使用ESP8266 NONOS SDK的driver/key API
- poj-3299-Humidex
- hdu5122(水题)
- http服务配置/LAMP网站平台/PHP应用部署(Discuz!论坛系统
- HTML标签-图像
- 设计模式--抽象工厂模式C++实现
- CSAPP 并发编程示例
- python 冒号与逗号的区别
- java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
- 思维变慢的原因
- 软件测试基础知识 day 3
- MFC-Slider(滑块)
- 敏捷开发讲义---怎样打造敏捷团队
- Python学习笔记(三)高级特性
- vi多行删除