吃西瓜[matrix.pas/c/cpp]

[说明]此题中出现的所有数全为整数

[背景]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部分

[输入][matrix.in]

首行三个数h,m,n(注意顺序),分别表示西瓜的高,长,宽.

以下h部分,每部分是一个m*n的矩阵,第i部分第j行的第k个数表示西瓜第i层,第j行第k列的那块1立方厘米的小正方体的营养值.

[输出][matrix.out]

SubRaY所能得到的最大营养值

[样例输入]

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

[样例输出]

45

[数据范围]

对于30%的数据,h=1,1<=m,n<=10

对于全部的数据,1<=h<=32,1<=m,n<=50,保证h<=m,n

=====================================

============================

{
ID:jie19952
PROG:
LANG:PASCAL
}
var
h,m,n:longint;
sum,map:array[0..50,0..50,0..50]of longint;
sum1:array[0..50,0..50]of longint;
sum2:array[0..50]of longint;
procedure init;
begin
assign(input,'matrix.in');
assign(output,'matrix.out');
reset(input); rewrite(output);
end;
procedure terminate;
begin
close(input); close(output);
halt;
end;
function max(a,b:longint):longint;
begin
if a>b then exit(a);
exit(b);
end;
procedure main;
var
h1,m1,m2,n1,n2:longint;
ans:longint;
begin
readln(h,m,n);
fillchar(map,sizeof(map),0);
fillchar(sum,sizeof(sum),0);
for h1:=1 to h do
for m1:=1 to m do
for n1:=1 to n do
begin
read(map[h1,m1,n1]);
sum[h1,m1,n1]:=sum[h1,m1,n1-1]+map[h1,m1,n1];
end;
ans:=-maxlongint;
For n1:=1 to n do
for n2:=n1 to n do
begin
//fillchar(sum1,sizeof(sum1),0);
for h1:=1 to h do
begin
sum1[h1,0]:=0;
for m1:=1 to m do
begin
sum1[h1,m1]:=sum1[h1,m1-1]+sum[h1,m1,n2]-sum[h1,m1,n1-1];
end;
end;
sum2[0]:=0;
for m1:=1 to m do
for m2:=m1 to m do
begin
for h1:=1 to h do
begin
sum2[h1]:=max(sum2[h1-1]+sum1[h1,m2]-sum1[h1,m1-1],sum1[h1,m2]-sum1[h1,m1-1]);
if sum2[h1]>ans then ans:=sum2[h1];
end;
end;
end;
writeln(ans);
end;
begin
init;
main;
terminate;
end.

【DP~最大子立方体】吃西瓜相关推荐

  1. 【最大立方体和】吃西瓜rqnoj93

    吃西瓜rqnoj93 题目描述 [说明]此题中出现的所有数全为整数 [背景]SubRaY有一天得到一块西瓜,是长方体形的.... [题目描述]SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发 ...

  2. 其实人是有潜力的,比如吃西瓜

    从今天早上刚出门,就计划好了今天将是蛮累的一天.在这一天快要结束的时候,发现 比我想象的要累多了~ 早上去新区还书,顺便借耳机,明天这辈子最后一次英语考试.新区真偏僻,蛋都不生鸟一地方,把那些大一大二 ...

  3. 夏天吃西瓜10大禁忌必须知道

    吃西瓜是夏天必做的一件事之一,西瓜作为消暑解渴的最佳水果,自然在夏天收到很多人喜爱,但在食用西瓜时,一些禁忌也必须时刻小心. 吃西瓜有什么好处? <本草纲目>中说西瓜甘寒无毒,不仅&quo ...

  4. c语言程序设计猪八戒吃西瓜,三年级语文下册教案——《猪八戒吃西瓜》教学设计之二...

    [教学要求] 1.运用工具书学习并理解课文中生字和词语的意思. 2.了解课文主要内容,培养自学能力. 3.了解猪八戒的性格特点,结合心理活动描写学习刻画人物的方法. 4.了解<西游记>的文 ...

  5. [洛谷 P3788] 幽幽子吃西瓜

    妖梦费了好大的劲为幽幽子准备了一个大西瓜,甚至和兔子铃仙打了一架.现在妖梦闲来无事,就蹲在一旁看幽幽子吃西瓜.西瓜可以看作一个标准的球体,瓜皮是绿色的,瓜瓤是红色的,瓜皮的厚度可视为0.妖梦恰好以正视 ...

  6. c语言程序设计猪八戒吃西瓜,猪八戒吃西瓜教学设计

    猪八戒吃西瓜教学设计 作为一位杰出的老师,往往需要进行教学设计编写工作,教学设计把教学各要素看成一个系统,分析教学问题和需求,确立解决的程序纲要,使教学效果最优化.那么问题来了,教学设计应该怎么写?以 ...

  7. 「BSOJ2040」 吃西瓜 - Dp/三维最大子长方体

    题目描述 说明:此题中出现的所有数全为整数 SubRaY有一天得到一块西瓜,是长方体形的.... SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地分成m*n*h块1立方 ...

  8. 01一起来吃西瓜——线性回归

    从西瓜书的第三章开始吃瓜哈 机器学习三要素 模型:根据具体问题,确定假设空间 策略:根据评价标准,确定选取最优模型的策略(通常会产生一个"损失函数") 算法:求解损失函数,确定最优 ...

  9. 问题 J: 【分治】猪八戒吃西瓜,【分治】桐桐查单词(map的应用)

    妙笔难书一纸愁肠,苍白的誓言,终究抵不过岁月的遗忘. 题目描述 有一天,贪吃的猪八戒来到了一个大果园,果园里有n(n≤100000)个大西瓜,每个西瓜 的质量不大于长整型(longint),并且每个西 ...

最新文章

  1. oracle测试环境表空间清理
  2. python运维实战--跨堡垒机连接二级服务器上传文件
  3. SSH分客户端openssh-client和openssh-server
  4. CRF++命名实体识别(NER)初步试探
  5. nyoj1170最大的数
  6. JAVA的23种设计模式
  7. 【华为云技术分享】用人工智能技术推动西安民俗文化,斗鱼超管团队有一套
  8. c-free5.0运行程序错误_web前端之异常/错误监控
  9. OpenShift 4 之脚本化部署Istio的HelloWorld和BookInfo示例
  10. 一次频繁Full GC问题排查过程分享
  11. WIN32汇编语言之通用对话框的使用
  12. Python菜鸟编程第十四课之正则表达式
  13. 项目管理 之一 软件开发生命周期(软件开发过程、瀑布模型、敏捷开发等)
  14. 给大家推荐几个查找芯片手册的网址,超级全建议收藏
  15. oracle plm 文件系统,ORACLE-PlM管理方案(标准材料).ppt
  16. VBA实现多条件查询
  17. HTML——背景颜色设置
  18. R - 小鑫の日常系列故事(七)——小纸条
  19. 网易互娱2017实习生招聘在线笔试第一场-3划线
  20. Windos 前后端项目的部署

热门文章

  1. 网络空间地图测绘的战略意义(上)
  2. 泰斗破环神学习笔记——主界面开发
  3. 使用ROS2机器人操作系统进行多机器人编程技术实践(Multi-Robot Programming Via ROS2 )
  4. 嵌入式软件工程师招聘
  5. 在 TIME_WAIT 状态的 TCP 连接,收到 SYN 后会发生什么?
  6. 终于拿下淘宝了。淘宝抓取,淘宝爬虫。taobao spider
  7. 【开源项目】minimp3 MP3解码器
  8. 绘声绘影X9 - 覆叠轨的功能讲解(4)
  9. 0511 backlog
  10. AD-PCB覆铜后修改覆铜区域更新覆铜