链接:http://poj.org/problem?id=1050

题意:给定n*n的矩阵,求和最大的子矩阵。

思路:我们将二维矩阵降维至一维,即将第i行到第j行的所有列压缩成一行,我们可以在线性时间求出一位的最大子段和。详见代码,复杂度O(n^3)。

AC代码:

#include<cstdio>
#include<algorithm>
using namespace std; int n,a[][],b[];
int dp[],ans=0xcfcfcfcf; int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)
for(int j=;j<=n;++j){
int tmp;
scanf("%d",&tmp);
a[i][j]=a[i-][j]+tmp;
}
for(int i=;i<=n;++i)
for(int j=i;j<=n;++j){
dp[]=a[j][]-a[i-][];
if(dp[]>ans) ans=dp[];
for(int k=;k<=n;++k){
b[k]=a[j][k]-a[i-][k];
dp[k]=max(dp[k-]+b[k],b[k]);
if(dp[k]>ans) ans=dp[k];
}
}
printf("%d\n",ans);
return ;
}

poj1050-最大子矩阵(dp)的更多相关文章

  1. BZOJ 1084: [SCOI2005]最大子矩阵 DP

    1084: [SCOI2005]最大子矩阵 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1084 Description 这里有一个n* ...

  2. ZOJ1074 (最大和子矩阵 DP)

    F - 最大子矩阵和 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u   Descri ...

  3. bzoj1084: [SCOI2005]最大子矩阵 dp

    这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 题解:m很小分类讨论,m==1时怎么搞都可以,m==2时,dp[i][j][k]表 ...

  4. P2258 子矩阵(dp)

    P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4 ...

  5. BZOJ 1057: [ZJOI2007]棋盘制作 悬线法求最大子矩阵+dp

    1057: [ZJOI2007]棋盘制作 Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑 ...

  6. 洛谷P2331 [SCOI2005]最大子矩阵 DP

    P2331 [SCOI2005]最大子矩阵 题意 : 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 第一行为n,m,k(1≤n≤ ...

  7. URAL_1146/uva_108 最大子矩阵 DP 降维

    题意很简单,给定一个N*N的大矩阵,求其中数值和最大的子矩阵. 一开始找不到怎么DP,没有最优子结构啊,后来聪哥给了我思路,化成一维,变成最大连续和即可.为了转化成一维,必须枚举子矩阵的宽度,通过预处 ...

  8. UVA-10074 最大子矩阵 DP

    求出大矩阵里面全为0的最大子矩阵 我自己用的个挫DP写的,感觉写的不是很好,其实可以再优化,DP想法就是以 0 0 到当前 i j 为整体矩阵考虑,当前 i j就是从 i-1 j或者 i,j-1那里最 ...

  9. poj1050(nyoj104 zoj1074)dp问题

    To the Max Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39913   Accepted: 21099 Desc ...

  10. poj1050最大子矩阵和

    这篇是看了别人的报告写的,就当是屡屡思路好了. 题目大意.给定一个n阶矩阵(方阵),每一个元素中存在一个数字.任务就是求出一个最大的子矩阵使得矩阵元素之间的和是最大的. n=100; 1.矩阵A[m] ...

随机推荐

  1. springboot读取配置信息、环境变量

    2.读取配置文件 2.1 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法 ...

  2. C/C++ - malloc/free和new/delete的区分

    new/delete与malloc/free的区别主要表现在以下几个方面: 注意:最主要的区别,new/delete是运算符,而malloc/free是函数 (1).new能够自动计算需要分配的内存空 ...

  3. ubuntu安装扩展在phpinfo显示不出来的解决办法

    在Ubuntu中使用apt-get安装了php扩展(比如redis.memcache.memcached等),在终端输入php -m是显示已加载,但是在phpinfo中无法显示,这个时候需要重启一下p ...

  4. Codeforces 965 D. Single-use Stones(思维)

    Codeforces 965 D. Single-use Stones 题目大意: 有一条河宽度为w,河上有一些石头,给出一组数(编号1~w-1),其中a[i]代表与河一岸距离为i的石头数量.每只青蛙 ...

  5. 关于hive on spark会话的共享状态

    spark sql中有一个类: org.apache.spark.sql.internal.SharedState 它是用来做: 1.元数据地址管理(warehousePath) 2.查询结果缓存管理 ...

  6. Xshell远程连接的具体操作和Xshell多会话设置小技巧

    前几天给大家分享了Xshell的安装教程,今天给大家分享如何在Xshell中进行远程连接,并且分享一下如何设置一条命令可以发送多个终端,这里以Xshell6为例进行说明,具体的教程如下. 1.依次点击 ...

  7. $\LaTeX$数学公式大全7

    $7\ Arrow\ Symbols$ $\leftarrow$ \leftarrow $\Leftarrow$ \Leftarrow $\rightarrow$ \rightarrow $\Righ ...

  8. Java读取根据HTML模板生成HTML页面

    首先,我们需要一个html模板: <html> <head> <title>###title###</title> <meta http-equi ...

  9. Spring Boot注入RestTemplate ,出现空指针解决办法

    SpringBoot 注入RestTemplate 我看了一下大都是让我们在启动类里面加一个Bean配置代码如下 @Autowired private RestTemplateBuilder buil ...

  10. Docker安装Redis及Warning解决方法

    虚拟机环境:VirtualBox 操作系统:CentOS 7 宿主机: Microsoft Windows 10 家庭中文版 Docker简介 Docker是一个轻量级容器技术.Docker直接运行在 ...