hdu 1081 To The Max(子矩阵最大和)
来源:互联网 发布:mac合盖放歌 编辑:程序博客网 时间:2024/05/23 22:57
http://acm.hdu.edu.cn/showproblem.php?pid=1081
题意:给一个n*n的矩阵,求其子矩阵的最大和。
思路:转化为一维求最大子段和。dp[i][j][k]表示从i到j行k列的最大值、
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int INF = 0x3f3f3f3f;int a[110][110],sum[110][110][110],dp[110][110][110];int main(){ int n; while(~scanf("%d",&n)) { for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) scanf("%d",&a[i][j]); memset(sum,0,sizeof(sum)); for(int g = 1; g <= n; g++)//先求 i 到 j 行 g 列的和,转化成一维的、 先枚举列 { for(int i = 1; i <= n; i++)//在枚举 i和j { sum[i][i][g] = a[i][g]; for(int j = i+1; j <= n; j++)//求i到j行第g列的和 sum[i][j][g] = sum[i][j-1][g] + a[j][g]; } } memset(dp,0,sizeof(dp)); int ans = -INF; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { for(int g = 1; g <= n; g++) { if(dp[i][j][g-1] < 0) dp[i][j][g] = sum[i][j][g]; else dp[i][j][g] = dp[i][j][g-1] + sum[i][j][g]; ans = max(ans,dp[i][j][g]); } } } printf("%d\n",ans); } return 0;}
0 0
- HDU 1081 To The Max(最大子矩阵和)
- hdu 1081 To The Max(子矩阵最大和)
- hdu 1081 To The Max(最大子矩阵和)
- hdu-1081 To The Max (最大子矩阵和)
- hdu 1081、poj1050 To The Max 最大子矩阵和
- HDU 1081 To The Max(最大子矩阵和)
- hdu 1081 To The Max 【最大子矩阵和】
- hdu 1081 To The Max(最大子矩阵和,dp)
- HDU 1081 To The Max(dp最大子矩阵和)
- HDU 1081 To The Max(dp最大子矩阵和)
- HDU 1081 To The Max 最大子矩阵和 .
- HDU 1081 To The Max(最大子矩阵)
- HDU 1081 To The Max--DP--(最大子矩阵)
- hdu 1081 To The Max ****poj 1050(最大子矩阵和)DP
- hdu 1081 To The Max 最大子矩阵和(dp)
- POJ 1050 / HDU 1081 To the Max(最大子矩阵和)
- HDU 1081 To The Max 求最大子矩阵
- hdu 1081 To The Max ( 最大子矩阵 )
- IOS - rangeOfString、NSNotFound
- ios--安全攻防01--Hack必备的命令与工具
- BufferedWriter和BufferedReader的简单使用方法
- IIS断开连接之后internet信息服务里面不显示本地计算机的解决方法
- 【机器学习系列】EM算法
- hdu 1081 To The Max(子矩阵最大和)
- Epplus 操作Excel 2007/2010
- 如何设置win7 锁屏不断网
- RESTEasy文件上传,使用html form表格
- dilicms后台左侧不显示菜单栏
- C语言学习笔记(2) 浅析static变量
- FPGA设计规范必要性
- sql server 数据库修复,mdf 损坏 修复 直接从物理文件 抽取数据 生成新的数据库
- Android资源文件夹res/raw和assets的使用