吃西瓜 最大子矩阵 三维的。 rqnoj93
真的好苦逼,这道神题,交了几十次都是70分,剩下的都TLE了,崩溃。
没办法,只能这样了。在网上看了别人的算法,大概思想是把三维的先压成两维,再把二维的弄成一维,这样就很容易了。
首先先累计从最底层到第i层的值,然后枚举i,j把第i层到第j层之间的值的和都算出来,就降成了二维,然后再去类似的枚举,降成简单的一维。
从这道题中学到了
1 输入优化是很重要的。
2 根据题目特点,可采取更优的循环方式。
3 max不能滥用,最好还是用比较的方式,效率比较高。
4 inline应该是有用。
#include<cstdio> #include<cctype> #include<cstring> #define rep(i,j,k) for(int i = j; i <= k; i++) #define maxn 60 using namespace std;int key[maxn][maxn][maxn], f[maxn][maxn] = {0}, dp[maxn]; int h, x, y;inline int read() //重要的输入优化 {int s = 0, t = 1; char c = getchar();while( !isdigit(c) ){if( c == '-' ) t = -1; c = getchar();}while( isdigit(c) ){s = s * 10 + c - '0'; c = getchar();}return s * t; }int maxsum3() {int ans = -0xfffffff;rep(i,1,h){rep(j,i,h){rep(k,1,x){rep(l,1,y){f[k][l] = key[j][k][l] - key[i-1][k][l];}}//重要优化所在,不要枚举k和l之间的所有值,把他们一次性算出来后,清零,下一次再重算,而是采用这种不断累加的方式。rep(k,1,x){memset(dp,0,sizeof(dp));rep(l,k,x){rep(t,1,y) dp[t] += f[l][t];int sum = 0;rep(t,1,y){if( sum > 0 ) sum += dp[t];else sum = dp[t];if( ans < sum ) ans = sum;}}}}}return ans; }int main() {h = read(), x = read(), y = read();rep(i,1,h){rep(j,1,x){rep(k,1,y){key[i][j][k] = read();key[i][j][k] += key[i-1][j][k];}}}int ans = maxsum3();printf("%d\n", ans);return 0; }
多学,多积累,加油。
转载于:https://www.cnblogs.com/83131yyl/p/5031028.html
吃西瓜 最大子矩阵 三维的。 rqnoj93相关推荐
- 【最大立方体和】吃西瓜rqnoj93
吃西瓜rqnoj93 题目描述 [说明]此题中出现的所有数全为整数 [背景]SubRaY有一天得到一块西瓜,是长方体形的.... [题目描述]SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发 ...
- 【DP~最大子立方体】吃西瓜
吃西瓜[matrix.pas/c/cpp] [说明]此题中出现的所有数全为整数 [背景]SubRaY有一天得到一块西瓜,是长方体形的.... [题目描述]SubRaY发现这块西瓜长m厘米,宽n厘米,高 ...
- 其实人是有潜力的,比如吃西瓜
从今天早上刚出门,就计划好了今天将是蛮累的一天.在这一天快要结束的时候,发现 比我想象的要累多了~ 早上去新区还书,顺便借耳机,明天这辈子最后一次英语考试.新区真偏僻,蛋都不生鸟一地方,把那些大一大二 ...
- 夏天吃西瓜10大禁忌必须知道
吃西瓜是夏天必做的一件事之一,西瓜作为消暑解渴的最佳水果,自然在夏天收到很多人喜爱,但在食用西瓜时,一些禁忌也必须时刻小心. 吃西瓜有什么好处? <本草纲目>中说西瓜甘寒无毒,不仅&quo ...
- c语言程序设计猪八戒吃西瓜,三年级语文下册教案——《猪八戒吃西瓜》教学设计之二...
[教学要求] 1.运用工具书学习并理解课文中生字和词语的意思. 2.了解课文主要内容,培养自学能力. 3.了解猪八戒的性格特点,结合心理活动描写学习刻画人物的方法. 4.了解<西游记>的文 ...
- [洛谷 P3788] 幽幽子吃西瓜
妖梦费了好大的劲为幽幽子准备了一个大西瓜,甚至和兔子铃仙打了一架.现在妖梦闲来无事,就蹲在一旁看幽幽子吃西瓜.西瓜可以看作一个标准的球体,瓜皮是绿色的,瓜瓤是红色的,瓜皮的厚度可视为0.妖梦恰好以正视 ...
- c语言程序设计猪八戒吃西瓜,猪八戒吃西瓜教学设计
猪八戒吃西瓜教学设计 作为一位杰出的老师,往往需要进行教学设计编写工作,教学设计把教学各要素看成一个系统,分析教学问题和需求,确立解决的程序纲要,使教学效果最优化.那么问题来了,教学设计应该怎么写?以 ...
- 动态规划 RQNOJ 吃西瓜 最大子段和三维版
题目描述 [说明]此题中出现的所有数全为整数 [背景]SubRaY有一天得到一块西瓜,是长方体形的.... [题目描述]SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地 ...
- 「BSOJ2040」 吃西瓜 - Dp/三维最大子长方体
题目描述 说明:此题中出现的所有数全为整数 SubRaY有一天得到一块西瓜,是长方体形的.... SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地分成m*n*h块1立方 ...
最新文章
- html工具提示错误,HTML-KickStart工具提示错误
- Python爬取Json格式数据并读写(改中文编码)
- php-fmp开机启动,php-fpm设置成服务并开机自动启动
- vnc改ip_如何使用VNC进行远程桌面控制
- progress组件(进度条)
- listary什么意思_listary使用心得
- 五个很厉害的 CNN 架构
- SAP License:最近收到的信(审计人员关于成本问题的请教)
- 基于Givens变换的QR分解
- python server agent_Python实现Windows监控agent(上)
- jeecg框架中时间控件时分秒的显示
- 项目整体管理:实施整体变更控制
- 7、前后端分离中的权限管理思路
- github上12306抢票使用说明
- 【时间纷飞】死人,死人
- K - 一只小蜜蜂...
- 华东师范计算机科学与技术 导师,钱莹 - 华东师范大学 - 计算机科学与技术学院...
- PRCT-1011: Failed to run “oifcfg”. Detailed error: null
- 用matlab2018解方程,【2018年整理】MATLAB解方程的三个实例
- 深挖用户需求,教你4招搞定精准营销
热门文章
- Oracle中start with xx connect by prior 语句解析
- 如何设置oracle_home变量,oracle-如何在Ubuntu 9.x上正确设置ORACLE_HOME变量?
- java基础 通过继承Thread类和实现Runnable接口创建线程
- 利用matlab绘制图形
- java 06_JAVA06 数组
- aop判断方法是否执行成功_判断图中是否有环的三种方法
- python程序代码_python基础二
- android+录像中截图软件下载,录屏截图大师app
- java创建目录时带权限_java – 无法在外部存储中创建目录,尽管权限显然设置正确...
- @JsonFormat(pattern=“yyyy-MM-dd“)时间差问题