zoukankan      html  css  js  c++  java
  • 最大和 -- 最大子矩阵

    从一维的最大子序列 , 到二维的最大子序列 , 实际上还是转化为一维的去计算 , 通过输入时获得操作 , 和下面的 三个 for 循环 得以 计算最大子序列 /

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 #include<iostream>
     5 #include<algorithm>
     6 #include<queue>
     7 #include<vector>
     8 #include<set>
     9 #include<stack>
    10 #include<string>
    11 #include<sstream>
    12 #include<map>
    13 #include<cctype>
    14 #include<limits.h>
    15 using namespace std;
    16 int main()
    17 {
    18     int t,a[2][6],n,m;
    19     scanf("%d",&t);
    20     while(t--)
    21     {
    22         scanf("%d%d",&n,&m);
    23         memset(a,0,sizeof(a));
    24         for(int i=1;i<=n;i++)
    25             for(int j=1;j<=m;j++)
    26             {
    27                 scanf("%d",&a[i][j]);
    28                 a[i][j]=a[i][j]+a[i-1][j]; //   这里是一个重要的处理 ,  让下面的数据 , 代表该数据及以上数据之和  便于下方计算
    29             }
    30         int temp,result=INT_MIN;
    31         for(int i=1;i<=n;i++)     //            通过这三个  for 循环 得以计算到  最大值的最小子序列 . 
    32             for(int j=i;j<=n;j++)
    33             for(int k=1,maxn=INT_MIN;k<=m;k++)
    34         {
    35             temp=a[j][k]-a[i-1][k];
    36             maxn=(maxn>0?maxn:0)+temp;
    37             result=maxn>result?maxn:result;
    38         }
    39         printf("%d
    ",result);
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    纯js实现字符串formate方法
    C#实现json压缩和格式化
    简单的前端校验框架实现
    快速拷贝文件
    0012 移除元素
    0011 删除链表的倒数第N个节点
    0010 最长公共前缀
    0009 合并两个有序链表
    0008 合并K个排序链表
    0007 回文数
  • 原文地址:https://www.cnblogs.com/A-FM/p/5462515.html
Copyright © 2011-2022 走看看