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

    最大子矩阵

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1282
    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。

    比如,如下4 * 4的矩阵

    0 -2 -7  0

    9  2 -6  2

    -4  1 -4  1

    -1  8  0 -2

    的最大子矩阵是

    9 2

    -4 1

    -1 8

    这个子矩阵的大小是15。

    【输入】

    输入是一个N*N的矩阵。输入的第一行给出N(0<N<=100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数之间由空白字符分隔(空格或者空行)。已知矩阵中整数的范围都在[-127,127]。

    【输出】

    输出最大子矩阵的大小。

    【输入样例】

    4
    0 -2 -7  0
    9  2 -6  2
    -4  1 -4  1
    -1  8  0 -2
    

    【输出样例】

    15
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int a[105][105],mp[105][105];
    int main()
    {
        int n,ans=-10000005;
        cin>>n;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            {
                cin>>a[i][j];
                mp[i][j]=mp[i][j-1]+a[i][j];            
            }
        for(int fis=1;fis<=n;fis++)
            for(int las=fis;las<=n;las++)
            {
                int sum=0;
                for(int i=1;i<=n;i++)
                {
                    sum+=mp[i][las]-mp[i][fis-1];                
                    ans=max(ans,sum);
                    sum=max(0,sum);
                }
            }
        cout<<ans<<endl;        
    }

    【来源】

  • 相关阅读:
    STM32 端口复用配置
    stm32 新建文件记得添加到工程
    keil解决SYSTEMsysstm32f10x.h(298): error: #67: expected a "}"
    解决Keil复制中文乱码
    STM32 MPU6050 源码
    STM32 PWM输出
    STM32定时器
    STM32 看门狗操作姿势
    开课博客
    第二周学习进度
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/8017803.html
Copyright © 2011-2022 走看看