博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【动态规划】[POJ 1050]To the Max
阅读量:5008 次
发布时间:2019-06-12

本文共 797 字,大约阅读时间需要 2 分钟。

就是最大矩阵和,如果直接爆搜复杂度就是O(n4)的所以进行优化,sum[i][j][k]表示在第i列到第j列的第k行的和,那么就枚举i, j然后最大子段和,然后就变成O(n3)了, 反正n只有100就过了

#include 
#include
#include
using namespace std;const int MAXN = 100;int sum[MAXN+10][MAXN+10][MAXN+10], dp[MAXN+10];int main(){ int n; scanf("%d", &n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d", &sum[j][j][i]); int ans = 0; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++){ for(int k=1;k<=n;k++) sum[i][j][k] = sum[i][j-1][k]+sum[j][j][k]; for(int k=1;k<=n;k++) ans = max(ans, (dp[k] = (dp[k-1]<0?sum[i][j][k]:dp[k-1]+sum[i][j][k]))); } printf("%d\n", ans); return 0;}

转载于:https://www.cnblogs.com/JeremyGJY/p/5921715.html

你可能感兴趣的文章
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>
文字笔记
查看>>
shell获取目录下(包括子目录)所有文件名、路径、文件大小
查看>>
Python2和Python3中的rang()不同之点
查看>>
MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)...
查看>>
UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
查看>>
记忆--1.致我们不可缺少的记忆
查看>>
lintcode28- Search a 2D Matrix- easy
查看>>