算法设计与分析: 3-13 最大长方体问题

【总结】《算法设计与分析》第三章动态规划 第 3章  动态规划 习题总结 算法实现题 3-0 独立任务最优调度问题  {} 算法实现题 3-1 最少硬币问题  {} 算法实现题 3-2 序关系计数问题  {} 算法实现题 3-3 多重幂计数问题  {} 算法实现题 3-4 编辑距离问题  {} 算法 阅读详情

3-13 最大长方体问题


问题描述

一个长,宽,高分别为 m,n,p 的长方体被分割成个 m*n*p 个小立方体。每个小立方体 内有一个整数。试设计一个算法,计算出所给长方体的最大子长方体。子长方体的大小由它 所含所有整数之和确定。

对于给定的长,宽,高分别为 m,n,p 的长方体,编程计算最大子长方体的大小。

数据输入:
第 1 行是 3 个正整数 m,n,p,1<= m,n,p<=50。接下 来 m*n 行每行 p 个正整数,表示小立方体中的数。


Java

import java.util.Scanner;

public class ZuiDaChangFangTi {

    private static int m, n, p;
    private static int[][][] a;
    private static int[][] b;

    public static void main(String[] args) {
        int max, sum;

        Scanner input = new Scanner(System.in);

        while (true) {
            //还原初始值
            sum = 0;

            m = input.nextInt();
            n = input.nextInt();
            p = input.nextInt();

            a = new int[m][n][p];
            b = new int[n][p];
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    for (int k = 0; k < p; k++)
                        a[i][j][k] = input.nextInt();

            for (int i = 0; i < m; i++) {
                for (int k = 0; k < n; k++)
                    for (int t = 0; t < p; t++)
                        b[k][t] = 0;
                for (int j = i; j < m; j++) {
                    for (int k = 0; k < n; k++)
                        for (int t = 0; t < p; t++)
                            b[k][t] += a[j][k][t];
                    max = maxSum2(b);
                    if (max > sum)
                        sum = max;
                }

            }

            System.out.println(sum);
        }
    }

    private static int maxSum2(int[][] a){
        int sum = 0;
        int[] b = new int[p];

        for(int i=0; i<n; i++){
            for(int k=0; k<p; k++)
                b[k] = 0;
            for(int j=i; j<n; j++){
                for(int k=0; k<p; k++)
                    b[k] += a[j][k];
                int max = maxSum(b);
                if(max > sum)
                    sum = max;
            }
        }

        return sum;
    }

    private static int maxSum(int[] a){
        int sum = 0, b = 0;
        for(int i=0; i<p; i++){
            if(b > 0)
                b += a[i];
            else
                b = a[i];
            if(b > sum)
                sum = b;
        }

        return sum;
    }
}

Input & Output

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

Reference

王晓东《计算机算法设计与分析》(第3版)P93

DRAM裸晶到内存条:PHY与封装的协同设计原理 DRAM裸晶(Die)本身不具备直接通信能力,其功能实现高度依赖物理层(PHY)与封装技术的深度协同。PHY作为连接硅片与系统的关键翻译层,负责电气参数校准、信号完整性补偿和JEDEC协议适配;而TSOP、FBGA、HBM等封装形态则从根本上约束了走线长度、热分布与互连带宽,倒逼PHY架构演进。理解dram颗粒规格书和die参数的关系,本质是厘清规格值在特定封装+PHY+温度条件下的实测中位数属性;而lpddr眼图测试、hbm autorefresh mrs、ddr ibis等高频搜索场景,均指向同一底层逻 阅读详情

相关推荐

二维直方图原理与实践:从数据可视化到Prometheus监控关联分析

直方图是数据分析中用于展示数据分布的基础工具,它通过分箱统计揭示数据的频率分布特征。其核心原理是将数据范围划分为连续的区间(称为“箱体”),并统计落入每个区间的数据点数量,从而直观呈现数据的集中趋势、离散程度和分布形态。这项技术在数据探索、异常检测和统计分析中具有重要价值。在更复杂的场景下,尤其是需要分析两个变量间联合分布时,一维直方图存在局限,这便催生了二维直方图(2D Histogram)的应用。二维直方图将分析维度扩展到平面,通过划分网格并统计落入每个网格的数据点密度,能够有效揭示变量间的相关性模式,

weixin_30296405的博客 948

SDUT 2402 水杯最小表面积问题

水杯 Time Limit: 1000ms Memory limit: 65536K有疑问?点这里^_^ 题目描述 天气逐渐变热了,准备考研的高童鞋打算在夏天来临之前自己动手造一个水杯,以备口渴,你知道,高童鞋是个很挑剔而且古怪的的人,他每天喝的水是一定的,一滴也不多喝,一滴也不少喝,而且他用的杯子是个长方体!他认为这样才个性。 现在问题来了,你也知道,考研是多么的...

weixin_30265171的博客 337

63、机器人路径规划与导航系统的创新方法

本文介绍了两种创新的智能系统方法:基于TD3算法的机器人路径规划和基于IUKF算法的SINS/GPS组合导航系统。TD3算法通过Actor-Critic框架与合理设计的奖励函数,有效解决了机器人在连续动作空间中的路径规划难题,提升了学习效率与控制精度;IUKF算法则通过迭代无迹卡尔曼滤波,克服了传统滤波方法在非线性系统中的局限性,显著提高了导航系统的精度与鲁棒性。文章还对比了两种算法的核心思想与应用流程,并展望了其未来在多传感器融合与智能控制领域的拓展潜力。

gitlab7runner的博客 113

三维RRT算法Matlab实现与对比分析

路径规划是机器人自主导航的核心技术,其中快速扩展随机树(RRT)算法因其在高维空间的优异表现成为研究热点。RRT算法通过随机采样和树形扩展探索空间,特别适合解决三维环境中的运动规划问题。本文深入解析基础RRT、RRT+A星混合算法和双向RRT三种变体的实现原理,重点介绍它们在Matlab环境下的工程实现技巧。通过对比实验分析,展示不同算法在无人机导航、机械臂控制等三维场景中的性能差异,为工程实践提供算法选型参考。

weixin_29254673的博客 220

20、智能 HVAC 系统:高效节能与舒适体验的新突破

本文探讨了智能HVAC系统的最新进展,重点分析了智能自适应通风口系统和智能恒温器在提升能源效率与居住者热舒适度方面的应用。通过CFD模拟对比标准扩散器与自适应通风口的性能,结果显示后者能更快改善热舒适度并降低能耗。同时,基于PIR传感器的智能恒温器可实现自动调节,节能效果显著。文章还介绍了技术实现流程及未来发展趋势,指出智能HVAC系统将在工业4.0和可持续发展中发挥关键作用。

Python的专栏 156

最大长方体问题(动态规划\C++实现)

Description 一个长,宽,高分别是m,n,p的长方体被分割成m*n*p个小立方体。每个小立方体内含一个整数。 试着设计一个算法,计算所给长方体的最大子长方体。子长方体的大小由它内部所含所有整数之和确定。 约定:当该长方体所有元素均为负数时,输出最大子长方体为0。 Input 第一行3个正整数m,n,p,其中 1<=m,n,p<=50 接下来的m*n行中每行p个整数,表示小立方体中的数。 Output 第一行中的数是计算出的最大子长方体的大小。 Sample Input 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 Sample Output 14 Hint 1,先编写一维的“最大字段和”的解法。 2,基于“最大字段和”,编写二维的“最大子矩阵和”的解法。 3,基于“最大子矩阵和”,编写三维的“最大子长方体和”的解法。

装箱问题

问题描述一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6. 这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。输入数据输入文件包括几行...

weixin_34295316的博客 172

最大长方体问题

一个长,宽,高分别是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

颠覆性AI 3D建模:Zoo Text-to-CAD技术将设计效率提升10倍

在机械设计与工程制造领域,Zoo Text-to-CAD技术正以前所未有的方式重塑工业级模型创建流程。这项基于自然语言交互的AI 3D建模解决方案,通过将文本描述直接转化为精确三维CAD模型,为工程师和设计师提供了革命性的设计工具。核心关键词"AI 3D建模"技术使复杂机械设计从数天缩短至数分钟,目标用户涵盖机械工程师、产品设计师和制造企业,实现创意到可制造模型的直接转化。 ## 技术突破点解析

gitblog_00957的博客 1020

8601最大长方体问题

一个长,宽,高分别是m,n,p的长方体被分割成m*n*p个小立方体。每个小立方体内含一个整数。 试着设计一个算法,计算所给长方体的最大子长方体。子长方体的大小由它内部所含所有整数之和确定。 约定:当该长方体所有元素均为负数时,输出最大子长方体为0。

最大长方体动态规划

长方体分割。最大长方体问题的动态规划算法,复杂度

无人机三维路径规划算法对比与优化实践

路径规划是无人机自主飞行的核心技术,涉及蚁群算法、A*算法和RRT*等多种方法。这些算法通过不同的机制解决三维空间中的避障与路径优化问题,其中蚁群算法利用信息素引导搜索,A*算法基于启发式函数快速响应,RRT*则通过随机采样实现渐进最优。在工业巡检等实际场景中,算法选择直接影响飞行效率与安全性。本文重点探讨了三种算法在三维环境中的适配改造,包括信息素机制优化、启发函数设计和碰撞检测改进,并通过Matlab实现展示了性能对比与内存消耗分析,为工程实践提供参考。

weixin_32075843的博客 291

最大长方体问题--动态规划C++

一个长、宽、高分别为m,n,p的长方体被分割成m×n×p个小立方体。每个小立方体内有一个整数。试设计一个算法,计算出所给长方体的最大子长长方体。子长方体的大小由它所含所有整数之和确定。 算法设计:对于给定的长、宽、高分别为m,n,p的长方体,计算最大子长方体的大小。 数据输入:由文件input.txt提供输入数据。文件的第一行是3个正整数m,n,p。1<=m,n,p<=50.在接下来的m×n行中每行p个正整数,表示小立方体中的数。 结果输出:将最大子长方体的大小输出到output.txt的第1行。

每周技术面试高频题汇总:大厂面试官到底在考什么?完整实战指南

大家好,又到了每周的面试复盘时间。。现在的面试官更喜欢把你扔进一个具体的“场景”里,看你怎么思考、怎么权衡(Trade-off)。基于过去一周 优快云、掘金、LeetCode 等社区的热议内容,我为大家精选了,涵盖算法、系统设计、数据库和网络四大领域。咱们不整那些虚的,直接上干货,看看这些题目背后的考察点和解题思路。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 482

java算法分析与设计之最大子长方体问题源代码和实验报告

java算法分析与设计之最大子长方体问题源代码和实验报告 算法作为计算机专业学生的必修课,同时也是软件开发过程中必备的编程思想,对学习研究计算机专业意义重大;正因为这门课程难,所以除了相关方面的书籍,网络资源少的可怜,尤其是java代码简直如大海捞针。因此,做完这次课程设计,我决定把这些资源传到广大学生钟爱的优快云上供大家分享学习,希望能真正帮到大家!

3、动态规划必练题(含解法).pdf

算法面试 leetcode 算法题集 程序员算法进阶必刷题库 1、基础算法必练题(含解法)) 2、DFS、回溯、分治法必练题(含答案) 3、动态规划必练题(含解法) ✔️ 这是第三部分 4、算法进阶自练题

上一篇: 算法设计与分析: 3-12 圈乘运算问题
下一篇: 算法设计与分析: 3-14 正则表达式匹配问题
d3y1
博客等级 码龄12年 1438粉丝 2772原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值