zoukankan      html  css  js  c++  java
  • POJ 1050 To the Max

    //此题又是DP,我是看了结题报告才想出来的。。。。。。。。。。。。
    //苦想了好长时间,就是一层纸捅不破,原来那就
    //是应该加一个二维数组记录每行的前i个值得和
    //说白了就是记录一下状态,因为题意是一个二维矩阵
    //和得优化,所以一维的状态时不能够满足的,看来DP还是没
    //理解透彻

    #include<iostream>
    using namespace std;

    int main()
    {
        
    int  a[110][110],i,j,k,sum,max=-10000,s[110][110];
        
    int n,temp;
        
    while(scanf("%d",&n)!=EOF)
        {
            memset(s,
    0,sizeof(s[0][0]));
            
    for(i=0;i<n;++i)
                
    for(j=1;j<=n;++j)
                {
                    scanf(
    "%d",&a[i][j-1]);
                    s[i][j]
    =s[i][j-1]+a[i][j-1];
                }
            
    for(i=0;i<n;++i)
                
    for(j=i;j<n;++j)
                {
                    sum
    =0;
                    
    for(k=0;k<n;++k)
                    {
                        temp
    =s[k][j]-s[k][i];
                        sum
    +=temp;
                        
    if(sum<0) sum=0;
                        
    else if(sum>max)
                            max
    =sum;
                    }
                }
            printf(
    "%d\n",max);
        }
        
    return 1;
    }


     

  • 相关阅读:
    练习1-6
    c语言while(1)和while(0)
    练习1-3
    每天总结模电--(三)
    每天总结模电——贴片电阻,电容的命名规则(二)
    服务器应用的通用功能
    UML
    算法合集
    python笔记
    笔面试(2019秋招阶段)
  • 原文地址:https://www.cnblogs.com/lvpengms/p/1662766.html
Copyright © 2011-2022 走看看