zoukankan      html  css  js  c++  java
  • HDU 1081 To The Max

     1 /*
     2 这题暴力的话时间复杂度太高。
     3 本题是一维最大连续子序列的拓展。
     4 求二维的话只要转化为一维就可以了。
     5 转化方式。将一列的数字通过n^2的时间复杂度归并成一个数,
     6 每次归并一次就遍历一下list求最大值(这步就是执行一维的最大连续子序列)。
     7 */
     8 #include <iostream>
     9 #include <string.h>
    10 #include <cmath>
    11 using namespace std;
    12 int list[150];
    13 int gird[150][150];
    14 void get(int a,int b,int n)   //获得list列表。
    15 {
    16     int i,j;
    17     memset(list,0,sizeof(list));
    18     for(j=1;j<=n;++j)
    19     {
    20         for(i=a;i<=b;++i)
    21         {
    22             list[j]+=gird[i][j];
    23         }
    24     }
    25     return;
    26 }
    27 int find(int n)
    28 {
    29     int i,j,k;
    30     int res=0;
    31     for(i=0;i<n;++i)
    32     {
    33         for(j=0;j<=i;++j)
    34         {
    35             get(j,i,n);
    36             //已经获得list列表,现在进行一维的最大连续子序列。
    37             for(k=1;k<=n;++k)
    38             {
    39                 list[k]=max(list[k-1],0)+list[k];
    40                 if(list[k]>res) res=list[k];
    41             }
    42 
    43         }
    44     }
    45     return res;
    46 }
    47 int main()
    48 {
    49     int n,i,j;
    50     while(cin>>n)
    51     {
    52         for(i=0;i<n;++i)
    53          for(j=1;j<=n;++j)
    54          {
    55              cin>>gird[i][j];
    56          }
    57         cout<<find(n)<<endl;
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    (转)python3 计算字符串、文件md5值
    CF1398D Colored Rectangles(DP)
    Colab运行GitHub代码
    Pytorch错误解决
    SAP内部订单
    料工费
    摘抄,泛起内心的一丝波澜
    审计意见类型
    生产订单设置自动倒冲
    SAP常用事务码及规则tcode
  • 原文地址:https://www.cnblogs.com/symons1992/p/2733250.html
Copyright © 2011-2022 走看看