hdu 2830 Matrix Swapping II(额,,排序?)
题意:
N*M的矩阵,每个格中不是0就是1。
可以任意交换某两列。最后得到一个新矩阵。
问可以得到的最大的子矩形面积是多少(这个子矩形必须全是1)。
思路:
先统计,a[i][j]记录从第i行第j列格往上连续的0的个数。
枚举每一行作为答案子矩阵的底, 然后将这一行的a[i][j]从大到小排序,扫一遍计算。
看代码。
代码:
int n,m;
char temps[1005][1005];
int a[1005][1005];
int ts[1005]; bool cmp(int a,int b){
return a>b;
} int main(){ while(scanf("%d%d",&n,&m)!=EOF){
rep(i,0,n-1){
scanf("%s",temps[i]);
}
mem(a,0);
rep(i,0,m-1) if(temps[0][i]=='0') a[0][i]=0; else a[0][i]=1;
rep(i,1,n-1){
rep(j,0,m-1){
if(temps[i][j]=='1') a[i][j]=1+a[i-1][j];
}
} int ans=0;
rep(i,0,n-1){
rep(j,0,m-1) ts[j]=a[i][j];
sort(ts,ts+m,cmp);
rep(i,0,m-1) ans=max( ans,ts[i]*(i+1) );
} printf("%d\n",ans);
} return 0;
}
hdu 2830 Matrix Swapping II(额,,排序?)的更多相关文章
- HDU 2830 Matrix Swapping II (预处理的线性dp)
Matrix Swapping II Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDu 2830 Matrix Swapping II(dp)
Problem Description Given an N * M matrix with each entry equal to 0 or 1. We can find some rectangl ...
- HDU 2830 Matrix Swapping II
给一个矩阵,依然是求满足条件的最大子矩阵 不过题目中说任意两列可以交换,这是对题目的简化 求出h数组以后直接排序,然后找出(col-j)*h[j]的最大值即可(这里的j是从0开始) 因为排序会影响到h ...
- 【HDOJ】2830 Matrix Swapping II
简单DP. /* 2830 */ #include <iostream> #include <string> #include <map> #include < ...
- Matrix Swapping II(求矩阵最大面积,dp)
Matrix Swapping II Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU 2830:Matrix Swapping II(思维)
http://acm.hdu.edu.cn/showproblem.php?pid=2830 题意:-- 思路:对于每一列,它是固定的,用dp[][]处理出连续的长度.例如: 假设我们扫第四列的时候, ...
- [HDOJ2830]Matrix Swapping II(胡搞)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2830 给一个矩阵只有0和1,矩阵的列可以和其他列交换无数次,问交换后整个矩阵形成的最大的全是1的子矩阵 ...
- [ An Ac a Day ^_^ ] hdu 2830 矩阵交换II
第一眼觉得是个dp 但是有了可以随意交换的条件觉得简单了不少 但是还是没做出来…… 看了一下别人的做法才觉得自愧不如 因为所有列都可以随意交换 应该尽量把长的放在一起 那么将所有的矩形排序之后 以第j ...
- HDU 3081 Marriage Match II(二分法+最大流量)
HDU 3081 Marriage Match II pid=3081" target="_blank" style="">题目链接 题意:n个 ...
随机推荐
- symfony中使用__construct获取services对象
symfony中服务的使用总所周知的方便,但是当一个controller多次使用到同一个服务的时候就会出现在每个Action中都get获取服务,此时为了省事相信你也尝试使用构造函数申明一个私有对象避免 ...
- 修改文件权限后,再git pull后提示文件已修改
问题: 从git上面pull下来脚本文件,在Linux上面执行.执行chmod +x 后,如果再次有修改文件,git pull 的提示会终止.每次都要使用 git checkout -- <fi ...
- Jmeter系列(10)- Linux环境安装之Jmeter下载配置
step-1下载 我是之前windows有,就直接copy到Linux系统了 step-2Jmter放到local目录 mv apache-jmeter-5.2.1 /usr/local/ step- ...
- 华为云计算IE面试笔记-FusionCompute上的虚拟机A和虚拟机B不能正常通信,请描述可能的故障点和排除方法(分析虚拟机A和虚拟机B不通)
*快速定位故障点:(考到) ARP:同一二层内可以通过ARP -a命令查询到要访问的主机IP(ARP表项中记录了同一二层中的IP和MAC的对应关系),若查询不到,说明二层出现问题(Vlan 间不通)或 ...
- python多线程与threading模块
python多线程与_thread模块 中介绍了线程的基本概念以及_thread模块的简单示例.然而,_thread模块过于简单,使得我们无法用它来准确地控制线程,本文介绍threading模块,它提 ...
- Java对象构造
关于对象构造的一些认识. 默认域初始化 如果在构造器中没有显示地给域赋予初值,那么就会被自动地赋予默认值:数值为0,布尔值为false,对象引用为null.然而,这显然是不安全的,在一个null引用上 ...
- file_get_contents('php://input') 数据如何转换成数组
前台表单页:demo01.html 后台:demo01.php 输出结果: 备注:若前台通过Ajax的post提交过来的是json数据,需要对json数据进行解析:$data = json_decod ...
- HTML元素的三种类型及其转换
HTML元素的三大类型 1.块元素 可以设置宽高大小,默认宽度为100%,并且独占一行. 例如:p ul li h1~h6 div form table 2.内联(行内)元素 无法设置宽高,元素大小随 ...
- DCI架构是如何解决DDD战术建模缺点的?
摘要:将DCI架构总结成一句话就是:领域对象(Object)在不同的场景(Context)中扮演(Cast)不同的角色(Role),角色之间通过交互(Interactive)来完成具体的业务逻辑. 本 ...
- 高德 Serverless 平台建设及实践
作者 | 邓学祥(祥翼) 来源 | Serverless 公众号 高德从 FY21 财年开始启动 Serverless 建设,至今一年了,高德 Serverless 业务的峰值超过十万 qps 量级, ...