博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu--1081--最大子矩阵和
阅读量:4956 次
发布时间:2019-06-12

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

一般 做这题之前应该先去做下 hdu的1003----这是 一维上的 最大连续和

矩阵么 就是二维了嘛~

我一开始 走进了个错误的方向... 我去计算了第X行前Y个数的和...这是不对的

我们这里也同样用到了 前缀和的思想 但应该去计算前X个行第Y个数的和

这样 假如 有个matrix[j][y] - matrix[i-1][y]就是表示 第I行到第J行Y列上的和

如果 这个y我们用 0 ->n去遍历它 并且可以通过sum+=matrix[a][b] 来判断到第某行可以使和尽量最大

一共是需要O(n^3)的时间复杂度 去遍历整个矩阵 判断每个子矩阵的和 来求得最大的值

似乎没有更优化的了...   要是可以变成 一维的复杂度 那太好了

    

 

1 #include 
2 using namespace std; 3 4 const int size = 110; 5 int matrix[size][size]; 6 7 int main() 8 { 9 int n , i , j , k;10 int sum , mmax , temp , num;11 while( cin>>n )12 {13 mmax = -520;14 for( i = 0 ; i
> num;19 matrix[i][j] = i>0 ? matrix[i-1][j] + num : num;20 }21 }22 for( i = 0 ; i
0) 30 temp = matrix[j][k] - matrix[i-1][k]; 31 else32 temp = matrix[j][k];33 sum += temp;34 if( sum>mmax )35 mmax = sum;36 if( sum<0 )37 sum = 0; 38 }39 }40 } 41 cout << mmax << endl; 42 }43 return 0;44 }45
View Code

 

转载于:https://www.cnblogs.com/radical/p/3847509.html

你可能感兴趣的文章
【noip2004】虫食算——剪枝DFS
查看>>
Codeforces 40 E. Number Table
查看>>
CLR via C#(第3 版)
查看>>
java语法之final
查看>>
关于响应式布局
查看>>
详解ASP.Net 4中的aspnet_regsql.exe
查看>>
python 多进程和多线程的区别
查看>>
hdu1398
查看>>
[android] 网络断开的监听
查看>>
156.Binary Tree Upside Down
查看>>
MongoDB在windows下安装配置
查看>>
Upselling promotion stored procedure
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
程序员如何提高影响力:手把手教你塑造个人品牌
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
Ext JS学习第十三天 Ext基础之 Ext.Element
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
Python模块调用
查看>>