题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1081
解题报告:求最大的矩阵和的问题,可以转化为最大连续子序列和的模型,只不过这个是一个二维的问题。如何转化是关键:我们可以把每一项变成前面多项的和,通过相减计算每个子矩阵。在求解的时候竖着求解,这样子问题就转换为1维求解最大连续子序列和的问题。
给一组参考数据:
4
-3 -7 -1 -2
-3 -4 -2 -5
-3 -5 -2 -3
-4 6 -3 -2
参考代码:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define MAX (100 + 5) int mp[MAX][MAX],sum[MAX][MAX]; int temp[MAX][MAX]; int main() { int n,ans,cnt; while(scanf("%d",&n)!=EOF) { int mini = -0x7ffffff; memset(mp,0,sizeof(mp)); memset(sum,0,sizeof(sum)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%d",&mp[i][j]); if(mp[i][j] > mini) mini = mp[i][j]; } if(mini<0) { printf("%d\n",mini); continue; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) sum[i][j]=sum[i][j-1]+mp[i][j]; } ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { for(int k=0;k<i;k++) { temp[j][k+1]=sum[j][i]-sum[j][k]; } } for(int k=1;k<=i;k++) { cnt=0; for(int j=1;j<=n;j++) { cnt+=temp[j][k]; if(ans<cnt) ans=cnt; if(cnt<0) cnt=0; } } } printf("%d\n",ans); } return 0; }
相关推荐
描述中提到的“动态规划DP题解”和“POJ HDU部分动态规划DP题解”,说明这个压缩包包含了针对HDU和POJ(Problemset Online Judge)平台上一些动态规划题目的解答。POJ是一个著名的在线编程竞赛平台,其中包含了大量...
关于hdu的动态规划的题目,包括一些水题,还有一些经典的动态规划题目。
【标题】"HDU DP动态规划"涉及到的是在算法领域中的动态规划(Dynamic Programming,简称DP)技术,这是解决复杂问题的一种高效方法,尤其适用于有重叠子问题和最优子结构的问题。动态规划通常用于优化多阶段决策...
根据提供的信息,我们可以总结出以下关于“hdu动态规划算法集锦”的知识点: ### 动态规划基础概念 动态规划是一种解决多阶段决策问题的方法,它通过将原问题分解为互相重叠的子问题,利用子问题的解来构建原问题...
### HDU 动态规划精选解析 #### 一、Robberies (抢劫) **问题描述:** 本题涉及抢劫问题,需要求出在一定条件下,能够抢得的最大金额的同时保证最大的逃脱概率。每家银行有一个特定的价值(金额)以及一个逃脱的...
本资源“acm课件动态规划题(杭电)(HDU)”显然是针对这个领域的训练材料,特别适合于提升ACM竞赛选手在解决动态规划题目上的能力。杭州电子科技大学(Hangzhou Dianzi University, 简称HDU)是知名的在线编程竞赛...
动态规划是计算机科学中一种强大的问题解决方法,尤其在处理最优化问题时非常有效。在这个教案中,我们将深入探讨动态规划的基本概念、应用场景以及如何构建解决方案。 动态规划是一种通过将复杂问题分解为相互重叠...
1. **算法基础**:这部分通常会讲解基础的数据结构,如数组、链表、栈、队列、树、图等,以及基础算法,如排序、搜索、动态规划、贪心算法等。这些是ACM竞赛中常遇到的问题类型,对解题至关重要。 2. **高级算法**...
这些代码通常包含了对各种算法的应用,例如排序、搜索、图论、动态规划等,对于学习算法和准备编程竞赛的初学者来说是一份宝贵的资源。 压缩包内的文件名“朝花夕拾——hdu”可能表示这是一系列关于HDU题目的代码...
杭电ACM课件2014版之 (HDUACM201403版_05)动态规划
DP(Dynamic Programming,动态规划)是一种非常重要的算法思想,在 ACM HDU 题目分类中,DP 问题占据了很大的比例。例如,1003 DP 经典问题,最大连续子段和;1024 经典 DP,最大 M 子段和;1025 经典 DP,最长递增...
HDU动态规划,此PPT系杭州电子科技大学ACM总教练刘春英老师所有, 特在此分享贡献给广大编程爱好者, 特别是ACMer!
9. **动态规划**:这是一种优化策略,通过构建状态转移方程来求解问题,例如背包问题、最长公共子序列、矩阵链乘法等。 10. **回溯法**:在解决组合优化问题和逻辑推理问题时常用,如八皇后问题、数独求解等。 11....
### hdu1250高精度加法 #### 背景介绍 在计算机科学与编程竞赛中,处理大整数运算(特别是加法、减法、乘法等)是常见的需求之一。当数字的位数超过了标准数据类型(如`int`、`long`等)所能表示的最大值时,就需要...
在这个实验中,主要的目标是通过动态规划算法来解决一个实际问题——如何在不打破存钱罐的情况下,找到装满存钱罐所需的最小金额。实验使用Java语言进行实现,并且是针对HDU 1114题目的解决方案。 动态规划是一种...
- **动态规划实现**:使用两个循环实现状态转移,外层循环遍历数组,内层循环用于计算当前元素结尾的最长递增子序列长度。 - **输出结果**:输出最长递增子序列的长度。 ### 总结 通过上述分析,我们了解到题目...
在IT领域,算法是解决问题的核心工具,而递归与分治策略、动态规划、贪心算法、回溯法、分支限界法以及随机化算法都是其中的重要组成部分。这些算法不仅适用于计算机科学,也在数据结构、优化问题和复杂计算中扮演着...
动态规划DP题解 POJ HDU 动态规划解题报告
可能是对动态规划深入讲解的一堂课,而 "(HDUACM2010版_04)动态规划.ppt"、"3_ACM动态规划.ppt" 和 "hdu1160.txt" 可能是针对ACM竞赛的动态规划训练资料,特别是"hdu1160.txt"可能是一个具体的背包问题实例。...
【标题】"HDU_2010.rar"是一个压缩包文件,其中包含了与"HDU 2010"相关的资源,特别是针对"HDU ACM20"比赛的编程题目。"hdu 2010"和"hdu 20"可能是该比赛的不同简称或分类,而"hdu acm20"可能指的是该赛事的第20届...