Maximum Submatrix 2
Codeforces Round #221 (Div. 1) B:http://codeforces.com/problemset/problem/375/B
题意:给你一个n*m的0,1矩阵,你可以交换一些行,求一个最大子矩阵的面积,这个子矩阵全部包含1.
题解:看标签是数据结构,怎么想,也不知道用数据结构怎么搞。最后想到是求面积,面积不就是l*d,只要确定了了l和d,面积就出来了,于是我想到了枚举l和d。这里要先处理出来一些东西,dp[j][i]表示(i,j)的右边的有多少个连续的1,包括(i,j),可以这么想,矩阵的左边一定出现在那一列,所以可以枚举列,对于固定左边来说,也就是起点固定了,那么狠容易想到,,要把连续1多的放在一起,所以要对该列进行排个序,然后就可以开始枚举,从上到下,因为最上面的是最短的,所以下面构成的面积才是我们想要的。得到最大的面积。表述不是很清晰,还是看代码吧。题解说用基数排序,但是我用了基数排序,发现比类库的排序要慢,也许是数据小的原因吧。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int n,m,r[N][N];
char mp[N][N];
bool temp[N];
/*int counts[N],tmp[N];
int maxbit(int x){
int d=1;
for(int i=1;i<=n;i++){
int c=1;
int p=r[x][i];
while(p/10){
p=p/10;
c++;
}
if(c>d)
d=c;
}
return d;
}
void RadixSort(int x){
int d=maxbit(x);
int rr=1;
for(int i=0;i<d;i++){
for(int j=0;j<10;j++)
counts[j]=0;
for(int j=1;j<=n;j++) {
int k=r[x][j]/rr;
int q=k%10;
counts[q]++;
}
for(int j=1;j<10;j++){
counts[j]+=counts[j-1];
}
for(int j=n;j>=1;j--)
{
int p=r[x][j]/rr;
int s=p%10;
tmp[counts[s]-1]=r[x][j];
counts[s]--;
}
for(int j=0;j<n;j++){
r[x][j+1]=tmp[j];
}
rr=rr*10;
}
}*/
int main(){
while(~scanf("%d%d",&n,&m)){
memset(r,,sizeof(r));
for(int i=;i<=n;i++)
scanf("%s",mp[i]+);
for(int i=;i<=n;i++){
int temp=;
for(int j=m;j>=;j--){
if(mp[i][j]==''){
temp=;
}
else
temp++;
r[j][i]=temp;
}
}
int ans=;
for(int i=;i<=m;i++){
//RadixSort(i);
sort(r[i]+,r[i]+n+);
for(int j=;j<=n;j++){
ans=max(ans,r[i][j]*(n-j+));
}
}
printf("%d\n",ans);
}
}
Maximum Submatrix 2的更多相关文章
- CF 375B Maximum Submatrix 2[预处理 计数排序]
B. Maximum Submatrix 2 time limit per test 2 seconds memory limit per test 512 megabytes input stand ...
- Codeforces Round #221 (Div. 1) B. Maximum Submatrix 2 dp排序
B. Maximum Submatrix 2 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...
- Maximum Submatrix & Largest Rectangle
相关题型 问题一(最大和子矩阵) : 有一个 m x n 的矩阵,矩阵的元素可正可负.请找出该矩阵的一个子矩阵(方块),使得其所有元素之和在所有子矩阵中最大.(问题来源:http://acm.pku. ...
- cf D. Maximum Submatrix 2
http://codeforces.com/contest/376/problem/D 题意:给你一个矩阵,可以随意排列n行的次序,然后找出全部含有1的子矩阵.输出1的个数. 思路:c[i][j]表示 ...
- Codeforces 375B Maximum Submatrix 2 (DP)
<题目链接> 题目大意:给出一个01矩阵,行与行之间可以互换位置,问能够得到最大的全1矩阵的面积. #include <bits/stdc++.h> using namespa ...
- 【Codeforces 375B】Maximum Submatrix 2
[链接] 我是链接,点我呀:) [题意] 如果任意行之间可以重新排序. 问你最大的全是1的子矩阵中1的个数 [题解] 设cnt[i][j] 表示(i,j)这个点往右连续的1的个数 我们枚举列j 然后对 ...
- Codeforces 375
A 7的所有的余数都可以用1,6,8,9排列得到,然后搞一下就可以了. B 可以用类似于单调队列的东西搞.具体看代码: /* * Problem: B. Maximum Submatrix 2 * A ...
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- Soj题目分类
-----------------------------最优化问题------------------------------------- ----------------------常规动态规划 ...
随机推荐
- docker-compose.yml 语法说明
YAML 模板文件语法 默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建. 其 ...
- 使用 Acegi 保护 Java 应用程序
第 1 部分: 架构概览和安全过滤器 Acegi Security System 是一种功能强大并易于使用的替代性方案,使您不必再为 Java 企业应用程序编写大量的安全代码.虽然它专门针对使用 Sp ...
- [转] Bound Service的三种方式(Binder、 Messenger、 AIDL)
首先要明白需要的情景,然后对三种方式进行选择: (一)可以接收Service的信息(获取Service中的方法),但不可以给Service发送信息 (二) 使用Messenger既可以接受Servic ...
- Robolectric Test-Drive Your Android Code
Running tests on an Android emulator or device is slow! Building, deploying, and launching the app o ...
- HDU 4294 Multiple(搜索+数学)
题意: 给定一个n,让求一个M,它是n个倍数并且在k进制之下 M的不同的数字最少. 思路: 这里用到一个结论就是任意两个数可以组成任何数的倍数.知道这个之后就可以用搜索来做了.还有一个问题就是最多找n ...
- 9.22 noip模拟试题
水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...
- sql语句游标的写法
当循环查找一张表的信息时,我们得写一张游标来对每条信息进行操作,具体格式如下 DECLARE @fitemid int DECLARE #point_cursor CURSORFORSELECT fi ...
- 多线程lock(instance)中instance的选择.
如我的提问:http://bbs.csdn.net/topics/390496351?page=1#post-394837834 拥有类原子功能的类: class ShareState { //原子功 ...
- java_设计模式_单例模式_Singleton Pattern(2016-08-04)
概念: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 适用场景: 在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或 ...
- 【BZOJ2049】【LCT】Cave 洞穴勘测
Description 辉 辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通 道组成,并且每条通道连接了 ...