URAL_1146/uva_108 最大子矩阵 DP 降维
题意很简单,给定一个N*N的大矩阵,求其中数值和最大的子矩阵。
一开始找不到怎么DP,没有最优子结构啊,后来聪哥给了我思路,化成一维,变成最大连续和即可。为了转化成一维,必须枚举子矩阵的宽度,通过预处理的suffix可以很快计算出每一列某一段的和,然后进行一维DP即可。。总复杂度为 O(N^3);
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int mat[110][110];
int suffix[110][110];
int n;
int main()
{
while (scanf("%d",&n)!=EOF)
{
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
scanf("%d",&mat[i][j]);
}
}
//memset(suffix,0,sizeof suffix);
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
suffix[i][j]=suffix[i][j-1]+mat[i][j];
}
}
int d=0;
int ans=-(1<<30); //因为有负值,所以初始要为-inf,一开始设置为0,UVA过了,URAL没过,大概是因为URAL里面就出现了负最大值吧
for (int i=1; i<=n; i++)
{
for (int j=i; j<=n; j++)
{
d=0;
for (int k=1; k<=n; k++)
{
int tmp=suffix[k][j]-suffix[k][i-1];
d+=tmp;
ans=max(d,ans);
if (d<0) d=0;
}
}
}
printf("%d\n",ans);
}
return 0;
}
URAL_1146/uva_108 最大子矩阵 DP 降维的更多相关文章
- BZOJ 1084: [SCOI2005]最大子矩阵 DP
1084: [SCOI2005]最大子矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n* ...
- ZOJ1074 (最大和子矩阵 DP)
F - 最大子矩阵和 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Descri ...
- bzoj1084: [SCOI2005]最大子矩阵 dp
这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表 ...
- P2258 子矩阵(dp)
P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4 ...
- BZOJ 1057: [ZJOI2007]棋盘制作 悬线法求最大子矩阵+dp
1057: [ZJOI2007]棋盘制作 Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑 ...
- 洛谷P2331 [SCOI2005]最大子矩阵 DP
P2331 [SCOI2005]最大子矩阵 题意 : 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 第一行为n,m,k(1≤n≤ ...
- UVA-10074 最大子矩阵 DP
求出大矩阵里面全为0的最大子矩阵 我自己用的个挫DP写的,感觉写的不是很好,其实可以再优化,DP想法就是以 0 0 到当前 i j 为整体矩阵考虑,当前 i j就是从 i-1 j或者 i,j-1那里最 ...
- BZOJ 1084 最大子矩阵 dp
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1084 题目大意: 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分 ...
- 动态规划:ZOJ1074-最大和子矩阵 DP(最长子序列的升级版)
To the Max Time Limit:1 Second Memory Limit:32768 KB Problem Given a two-dimensional array of po ...
随机推荐
- DeprecationWarning:'open()' is deprecated in mongoose>=4.11.0,use 'openUri()' instead or set the 'useMongoClient' option if using 'connect()' or 'createConnection'
mongoose.connect('mongodb://localhost/test');报错:(node:2752) DeprecationWarning: `open()` is deprecat ...
- POJ 1979 Red and Black 四方向棋盘搜索
Red and Black Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 50913 Accepted: 27001 D ...
- 小程序转uni-app用到的一些方法
setData: function (obj) { let that = this; Object.keys(obj).forEach(function (key) { that.$set(that. ...
- HiBench成长笔记——(2) CentOS部署安装HiBench
安装Scala 使用spark-shell命令进入shell模式,查看spark版本和Scala版本: 下载Scala2.10.5 wget https://downloads.lightbend.c ...
- no-strings-attached-----攻防世界
拿到题目到虚拟机里的查看一下 把这些十进制数字转换为16进制,然后利用python deocde 注意0 87这里需要舍弃
- CVE-2019-0708 漏洞分析及相关测试
在CVE-2019-0708公布后几天就已经尝试过复现该漏洞,但借助当时exp并没能成功复现反弹shell的过程遂放弃,故借助这次漏洞复现报告再来尝试复现该漏洞,因为还在大三学习中,有很多知识还没有掌 ...
- GoJS实例3
复制如下内容保存到空白的.html文件中,用浏览器打开即可查看效果 <!DOCTYPE html> <html> <head> <meta charset=& ...
- R Akaike information criterion,AIC,一个越小越好的指标
Akaike information criterion,AIC是什么?一个用来筛选模型的指标.AIC越小模型越好,通常选择AIC最小的模型.第一句话好记,第二句话就呵呵了,小编有时候就会迷惑AIC越 ...
- 谈谈HashSet的存储原理及为什么重写equals必须重写hashcode方法
HashSet的存储原理: 1.将要传入的数据根据系统的hash算法得到一个hash值: 2.根据hash值可以得出该数据在hash表中的位置: 3.判断该位置上是否有值,没有值则把数据插入进来:如果 ...
- 2 JVM 运行机制