poj1050
i, j 代表列
用前缀和预处理出i,j之间的和
枚举i,j 那么i到j之间的和就相当于最长连续字段和的一位,对n行都做相同处理,再做一遍最长连续字段和即可。
最长连续字段和的 dp方程 dp[i] = max(dp[i-1] + a[i], a[i]);
1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 using namespace std; 5 int n, a[110][110], sum[110][110], tmp[110], dp[110], ans; 6 int main() 7 { 8 scanf("%d", &n); 9 for (int i = 1; i <= n; i++) 10 for (int j = 1; j <= n; j++) 11 scanf("%d", &a[i][j]); 12 for (int i = 1; i <= n; i++) 13 for (int j = 1; j <= n; j++) 14 sum[i][j] += sum[i][j-1] + a[i][j]; 15 for (int i = 1; i <= n; i++) 16 for (int j = i; j <= n; j++){ 17 memset(dp, 0, sizeof(dp)); 18 for (int k = 1; k <= n; k++) 19 { 20 tmp[k] = sum[k][j] - sum[k][i-1]; 21 } 22 for(int l = 1; l <= n; l++) 23 { 24 dp[l] = max(dp[l-1] + tmp[l], tmp[l]); 25 if(dp[l] > ans)ans = dp[l]; 26 } 27 } 28 printf("%d\n", ans); 29 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· .NET 9 new features-C#13新的锁类型和语义
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 《SpringBoot》EasyExcel实现百万数据的导入导出
2014-08-01 变量交换
2014-08-01 a+b问题与圆柱体表面积的计算
2014-08-01 算数表达式的练习