题目:

SubRaY有一天得到一块西瓜,是长方体形的....
SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地分成m*n*h块1立方厘米的小正方体,那么每一小块都会有一个营养值(可能为负,因为西瓜是有可能坏掉的,但是绝对值不超过200).
现在SubRaY决定从这m*n*h立方厘米的西瓜中切出mm*nn*hh立方厘米的一块小西瓜(一定是立方体形,长宽高均为整数),然后吃掉它.他想知道他最多能获得多少营养值.(0<=mm<=m,0<=nn<=n,0<=hh<=h.mm,nn,hh的值由您来决定).
换句话说,我们希望从一个m*n*h的三维矩阵中,找出一个三维子矩阵,这个子矩阵的权和最大.

一个2*3*4的例子,最优方案为切红色2*3*1部分

输入格式 Input Format
首行三个数h,m,n(注意顺序),分别表示西瓜的高,长,宽.
以下h部分,每部分是一个m*n的矩阵,第i部分第j行的第k个数表示西瓜第i层,第j行第k列的那块1立方厘米的小正方体的营养值.

输出格式 Output Format
SubRaY所能得到的最大营养值

样例输入 Sample Input
2 3 4
4 1 2 8
0 5 -48 4
3 0 1 9
2 1 4 9
1 0 1 7
3 1 2 8

样例输出 Sample Output
45

时间限制 Time Limitation
1s

注释 Hint
对于30%的数据,h=1,1<=m,n<=10
对于全部的数据,1<=h<=32,1<=m,n<=50,保证h<=m,n

来源 Source
noip 模拟赛

    因为数据比较小,所以不会超时的。你先处理下这一层这个位置和上个位置的累加和,然后在处理每一列的累加和。

   然后每次运算只用从左开始往右进行累加,算的就是一个矩阵了。

    

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int a[52][52][52];
int c[52][52][52];
int b[1000];
int p[1000];
int main()
{int h,m,n;//高,长,宽cin>>h>>m>>n;for(int w=1;w<=h;w++){for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)cin>>a[w][i][j],c[w][i][j]=a[w][i][j];}}for(int w=1;w<=h;w++){for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){c[w][i][j]+=c[w-1][i][j];}}}for(int w=1;w<=h;w++){for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){c[w][i][j]+=c[w][i-1][j];}}}/*cout<<endl;for(int w=1;w<=h;w++){for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){cout<<c[w][i][j]<<' ';}cout<<endl;}}*/int ans=0;for(int w=1;w<=h;w++)//第几层
    {for(int H=1;H<=w;H++)//w层上面选几层
        {for(int i=1;i<=m;i++)//第i行
            {for(int t=1;t<=i;t++)//这行上面的t行
                {memset(b,0,sizeof(b));memset(p,0,sizeof(p));for(int k=1;k<=n;k++)//从左往右加
                    {p[k]=c[w][i][k]-c[H-1][i][k]-c[w][t-1][k]+c[H-1][t-1][k];b[k]=max(b[k-1]+p[k],p[k]);if(b[k]>ans)ans=b[k];}}}}}cout<<ans<<endl;return 0;
}

程序里有标注

转载于:https://www.cnblogs.com/lcyhaha/p/7387842.html

p1164【立方体求和】相关推荐

  1. 多维时空数据介绍(1)时空立方体创建及可视化

    前言 时空立方体是Pro软件中用来表示时间与空间相结合的一类多维时空数据.使用时空立方体可以对时空数据进行可视化,并进行时间序列预测以及时空模式分析. . 操作平台:arcgis pro PART/ ...

  2. 张量基础学习(一 概念,求和指标,符号)

    欢迎大家来到我的这一个新专栏,本专栏我们将一起学习并探讨一些张量方面的知识,同样,需要一定的线性代数的基础知识铺垫,但肯定是没有量子计算那么深入和复杂,有需要的小伙伴可以点点关注,您的鼓励是我前进的最 ...

  3. LeetCode简单题之逐步求和得到正数的最小值

    题目 给你一个整数数组 nums .你可以选定任意的 正数 startValue 作为初始值. 你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值. 请你 ...

  4. loj2058 「TJOI / HEOI2016」求和 NTT

    loj2058 「TJOI / HEOI2016」求和 NTT 链接 loj 思路 \[S(i,j)=\frac{1}{j!}\sum\limits_{k=0}^{j}(-1)^{k}C_{j}^{k ...

  5. PyTorch 安装和基本运算— Tensor 的数据类型(浮点型、整型、随机浮点型等)、基本运算(绝对值、求和、裁剪、求商、求积、求幂等)、Tensor 与 Numpy 转换

    PyTorch 的安装可以到官网 https://pytorch.org/,选择适合自己机器以及安装方式,执行对应的命令即可. 除了安装 PyTorch 之外,建议也安装 torchvision 包. ...

  6. L1-009. N个数求和

    L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题的要求很简单,就是求N个数字的和.麻烦的是,这些 ...

  7. matlab立方体投影,那些投影到三维的高维立方体,后来都怎么样了?(浅度好文)...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function hypercube( N, a, b, c) %N为立方体维数,N不小于3 % a为投影方式,b为是否画面,c为是否旋转 %取值 1 点 ...

  8. shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

  9. ply补全为立方体_ply 点云文件格式

    英文版 ply格式 http://paulbourke.net/dataformats/ply/ 典型的   PLY   文件结构:头部顶点列表面片列表(其他元素列表) 头部是一系列以回车结尾的文本行 ...

最新文章

  1. [20190402]对比_mutex_wait_scheme不同模式cpu消耗.txt
  2. 数据中心节能专题—他山之石可以攻玉
  3. 互联网1分钟 | 0914
  4. Hinton神经网络公开课10 Combining multiple neural networks to improve generalization
  5. 前端学习(2319):angular2概述
  6. 万字干货:一步步教你如何在容器上构建持续部署!
  7. 安卓手机状态栏 定位服务自动关闭_手机电池为什么会越用越不耐用
  8. WebSocket 解决javascript跨域问题一剂良药
  9. 创建数据账号只有个别表的权限_只有普通权限账号,如何把远程数据库中该用户的数据表导入到本地数据库?...
  10. 5行代码识别各种验证码
  11. 2018-1-27工作周总结
  12. 2022年TikTok的9个变现模式
  13. Windows取证——CHNTPW工具使用(可更改 Windows 密码)
  14. win7 安装openssh_Windows安装OpenSSH服务
  15. js时间搓转时间,日期横杠转斜杠,时间转时间搓,年月日补个零,星期几,获取当前时间
  16. rd 删除 长目录_长时间的反馈循环如何伤害您的rd
  17. 强哥带你零基础学java-03运行第一个java程序
  18. 李永乐团队2021数学基础过关660题勘误表
  19. 光纤主干线路绕不过的一款光时域反射仪 TFN F7系列
  20. FUTURES模型 | 4. Demand 需求子模块

热门文章

  1. 遍历List过程中同时修改
  2. Ulink2 No Ulink Device found 解决办法
  3. iOS 为tableview添加新的cell类
  4. 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义
  5. c语言科学计数法_C入门:C语言中数据的储存(上)
  6. C如何将二维数组作为返回值
  7. 在python中、实例变量在类的内部通过_[宜配屋]听图阁
  8. byte数组转为string_String类
  9. html的扇形代码导航,CSS3--利用transform和transition属性制作扇形导航
  10. c语言调用话筒的程序,c – OpenAL:如何创建简单的“麦克风回声”程序?