没有合适的资源?快使用搜索试试~ 我知道了~
最大长方体问题
4星 · 超过85%的资源 需积分: 21 10 下载量 18 浏览量
2012-01-06
10:14:12
上传
评论
收藏 2KB TXT 举报
温馨提示
试读
3页
一个长,宽,高分别是m,n,p的长方体被分割成m*n*p个小立方体。每个小立方体内含一个整数。 试着设计一个算法,计算所给长方体的最大子长方体。子长方体的大小由它内部所含所有整数之和确定。 约定:当该长方体所有元素均为负数时,输出最大子长方体为0。 输入格式 第一行3个正整数m,n,p,其中 1<=m,n,p<=50 接下来的m*n行中每行p个整数,表示小立方体中的数。 输出格式 第一行中的数是计算出的最大子长方体的大小。 输入样例 3 3 3 0 -1 2 1 2 2 1 1 -2 -2 -1 -1 -3 3 -2 -2 -3 1 -2 3 3 0 1 3 2 1 -3 输出样例 14
资源推荐
资源详情
资源评论
#include<stdio.h>
int rect[55][55][55];
int w,h,l;
int longest(int a[]){
int i;
int find=a[1];
int b[55]={0,a[1],0};
for(i=2; i<=l; i++){
b[i] = a[i];
if(b[i-1]>0) b[i]+=b[i-1];
if(find<b[i]) find=b[i];
}
return find;
}
int Rect(int a[55][55]) {
int i,j,k;
int find=0;
int b[55];
int buf;
for(i=1; i<=w; i++) {
for(j=1; j<=l; j++)
b[j]=0;
for(j=i; j<=w; j++) {
for(k=1; k<=l; k++) {
b[k] += a[j][k];
}
buf=longest(b);
int rect[55][55][55];
int w,h,l;
int longest(int a[]){
int i;
int find=a[1];
int b[55]={0,a[1],0};
for(i=2; i<=l; i++){
b[i] = a[i];
if(b[i-1]>0) b[i]+=b[i-1];
if(find<b[i]) find=b[i];
}
return find;
}
int Rect(int a[55][55]) {
int i,j,k;
int find=0;
int b[55];
int buf;
for(i=1; i<=w; i++) {
for(j=1; j<=l; j++)
b[j]=0;
for(j=i; j<=w; j++) {
for(k=1; k<=l; k++) {
b[k] += a[j][k];
}
buf=longest(b);
资源评论
- hyszy2012-11-09思路不错,利用从一维,二维向三维过渡
- guangyulou12012-12-09思路清晰。
- conan1025tmd2012-11-03代码思路清晰容易分析
- a15093036342012-12-21代码不错。。值得下载
ivan214624872
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功