暑期dp46道(40)--HDOJ 2830 最大子矩阵面积 额
2016-08-18 17:14
429 查看
题目链接:hdoj 2830
不说什么了,上代码:
#include<cstdio>
#include<cstring>
#include<string>
#define debug 0
#define M(a) memset(a,0,sizeof(a))
#define Max(a,b) ((a>b)?a:b)
const int maxn = 1000 + 5;
int h[maxn], num[maxn];
int n, m;
void Do(){
char get; //因为是连续的 01,要用字符读取
int ans = 0;
for (int i = 1; i <= n; i++)
{
M(num);
for (int j = 1; j <= m; j++)
{
while ((get = getchar()) == ' ' || get == '\n');
if (get == '1')
h[j]++; //记录高度
else
h[j] = 0;
for (int k = 1; k <= h[j]; k++) //这题的唯一难点:因为是横向就可以组矩阵
{ //所以高度大的都可组较低的矩阵。
num[k]++;
}
}
for (int k = 1; k <= i; k++)
{
ans = Max(ans, k*num[k]); //高*宽
}
}
printf("%d\n", ans);
}
int main(){
#if debug
freopen("in.txt", "r", stdin);
#endif//debug
while (~scanf("%d%d", &n, &m))
{
M(h);
Do();
}
return 0;
}
不说什么了,上代码:
#include<cstdio>
#include<cstring>
#include<string>
#define debug 0
#define M(a) memset(a,0,sizeof(a))
#define Max(a,b) ((a>b)?a:b)
const int maxn = 1000 + 5;
int h[maxn], num[maxn];
int n, m;
void Do(){
char get; //因为是连续的 01,要用字符读取
int ans = 0;
for (int i = 1; i <= n; i++)
{
M(num);
for (int j = 1; j <= m; j++)
{
while ((get = getchar()) == ' ' || get == '\n');
if (get == '1')
h[j]++; //记录高度
else
h[j] = 0;
for (int k = 1; k <= h[j]; k++) //这题的唯一难点:因为是横向就可以组矩阵
{ //所以高度大的都可组较低的矩阵。
num[k]++;
}
}
for (int k = 1; k <= i; k++)
{
ans = Max(ans, k*num[k]); //高*宽
}
}
printf("%d\n", ans);
}
int main(){
#if debug
freopen("in.txt", "r", stdin);
#endif//debug
while (~scanf("%d%d", &n, &m))
{
M(h);
Do();
}
return 0;
}
相关文章推荐
- 暑期dp46道(39)--HDOJ 2870 最大子矩阵面积...
- 暑期dp46道(37) HDOJ 2844 COINS
- 暑期dp46道(36)--HDOJ 2577
- 暑期dp46道(35)--HDOJ 2159 FATE 背包问题
- 暑期dp46道(34)--HDOJ 1203 01背包
- 暑期dp46道(33)--HDOJ 1176 免费馅饼 类树塔:
- 暑期dp46道(32)--hdoj 1171 Big Event in HDU 多重背包:
- 暑期dp46道(31)--HDOJ 1087 最大上升子序列和 dp(水)
- 暑期dp46道(29) HDOJ 1503 Advanced Fruits 最长公共子序列
- 暑期dp46道(27)--HDOJ 3008 Warcraft
- 暑期dp46道(24)HDOJ 1074 Doing Homework 状压dp
- 暑期dp46道(23)HDOJ 1059 Dividing 多重背包+二进制优化
- 暑期dp46道(21)HDOJ 2059 龟兔赛跑
- 暑期dp46道(20)HDOJ 1081 To the Max 最大连续子序列+暴力枚举
- 暑期dp46道(19)HDU 1078 FatMouse and Cheese dfs+记忆化搜索
- 暑期dp46道(18)--HDOJ 1024 Max Sum Plus Plus
- 暑期dp46道(17)--HDOJ1114 Piggy Bank 完全背包
- 暑期dp46道(16)hdoj 1025 Constructing Roads In JGShining's Kingdom最长上升子序列(二分)
- 暑期dp46道(15)--HDU 1080 Human Gene Functions DFS+记忆化搜索
- 暑期dp46道(41)--HDOJ 1978 How many ways dfs + 记忆化搜索