博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 10755 - Garbage Heap(三维最大子矩阵)
阅读量:4072 次
发布时间:2019-05-25

本文共 1166 字,大约阅读时间需要 3 分钟。

和二维的最大子矩阵的思想是一样的,只是变成了三维的。

枚举层数的上下界, 然后把上下界之间的所有层“压缩”成一层,在这“一层”上用二维的方法再计算。

注意用long long

代码:

#include
#include
#include
#include
using namespace std;typedef long long int64 ;const int MAXN = 25;int A, B, C;int64 cube[MAXN][MAXN][MAXN];inline int64 read_int64(){ char ch = getchar(); while(!isdigit(ch) && ch!='-') ch=getchar(); bool neg = false; if(ch == '-') neg=true, ch=getchar(); int64 ans=0; while(isdigit(ch)){ ans = ans*10+ch-'0'; ch = getchar(); } if(neg) return -ans; return ans;}inline void input(){ scanf("%d%d%d", &A,&B,&C); memset(cube, 0, sizeof(cube)); for(int k=1; k<=A; ++k){ for(int i=1; i<=B; ++i){ for(int j=1; j<=C; ++j){ cube[k][i][j] = read_int64(); cube[k][i][j] += cube[k][i][j-1]-cube[k][i-1][j-1]+cube[k][i-1][j] - (cube[k-1][i][j-1]-cube[k-1][i-1][j-1]+cube[k-1][i-1][j]) + cube[k-1][i][j]; } //列 } //行 }//层}int64 solve(){ // 枚举层数的上下界 int64 ans = -2147483647-1; for(int down=0; down

转载地址:http://xszni.baihongyu.com/

你可能感兴趣的文章
flex编译时,会把trace语句也编译进去
查看>>
Timer的repeatCount和currentCount的区别
查看>>
as3工程和flex工程的区别
查看>>
stage和root的区别
查看>>
转贴关于AsWing和MXML 选项
查看>>
一日打开IE,IE就死掉了,原来是用了第三方开发windows主题皮肤的原因,用windows经典样式解决...
查看>>
svn客户端的用户名密码保存位置
查看>>
替换eclipse中folding的折叠代码的小图标
查看>>
mouseChildren为false后,
查看>>
Eclipse中的文本编辑器使用技巧
查看>>
在 flash.text.TextField 上找不到属性 play,且没有默认值。
查看>>
ANDROID物联网开发
查看>>
安卓开发项目实战我的云音乐
查看>>
ANDROID物联网开发
查看>>
UE4高级运动系统(Advanced Locomotion System V3)插件分析
查看>>
尘封的记忆第2卷:Serekh塞拉赫资源包
查看>>
adb server version (39) doesn't match this client (40); killing...
查看>>
adb server version (39) doesn't match this client (40); killing...
查看>>
Unity高级游戏地编案例
查看>>
UE4地编大型开放世界~制作烘焙全流程
查看>>