码迷,mamicode.com
首页 > 其他好文 > 详细

To the Max

时间:2018-10-05 16:07:35      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:memset   define   分享   http   cin   max   +=   ring   turn   

链接

[http://poj.org/problem?id=1050]

题意

给你一个矩阵,让你求子矩阵中的元素之和最大

分析

其实跟最大和子序列一样只不过维数增加了,你只需要降维就好了

技术分享图片

代码

#include<iostream>
#include<string.h>
using namespace std;
#define ll long long

int m[200][200];
int main(){
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int n,i,j,k;
    while(cin>>n){
        memset(m,0,sizeof(m));
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++)
            cin>>m[i][j],m[i][j]+=m[i-1][j];
        }
     int sum=0;
     int ans=-130; 
     for(i=1;i<=n;i++){
        for(j=i;j<=n;j++){
            sum=0;
            for(k=1;k<=n;k++){
                sum+=m[j][k]-m[i-1][k];//第k列第i个元素到第j个元素之和
                 if(sum<0) sum=0;//如果小于0从新的地方开始
                 if(sum>ans) ans=sum;//更新最大值 
             }
         }
       }
       cout<<ans<<endl; 
    } 
    return 0;
} 

To the Max

标签:memset   define   分享   http   cin   max   +=   ring   turn   

原文地址:https://www.cnblogs.com/mch5201314/p/9744777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!