• 二维数组


    求二维数组的最大和的子数组:

    #include<iostream>
    using namespace std;
    int Sum(int i,int k,int j,int l,int a[3][4])
    {
    int sum=0;
    for(int c=i;c<=k;c++)
    {
    for(int d=j;d<=l;d++)
    {
    sum=sum+a[c][d];
    }
    }
    return sum;

    }
    void main()
    {
    int a[3][4]={
    1,2,3,0,
    0,-4,-5,-6,
    7,0,-8,9};
    int i,j,k,l;
    int max,num;
    max=a[0][0];
    for(i=0;i<3;i++)
    {
    for(k=i;k<3;k++)
    {
    for(j=0;j<4;j++)
    {
    for(l=j;l<4;l++)
    {
    num=Sum(i,k,j,l,a);
    cout<<num<<" ";
    if(num>max)
    max=num;
    }
    }
    }
    }
    cout<<max;
    }

    这是算的3*4的 想算别的就把3 4改成对应的边长。

    该程序是先把所有数组遍历一遍,输出所有子数组的和再输出最大的子数组。

                                                                                                                                  杨理清,郭伟

  • 相关阅读:
    bzoj 4583 购物
    hdu 4694 支配树
    弦图问题初步
    第一次省选总结
    初学kd树
    省选前集训 lca
    bzoj 3282 Tree
    bzoj 2157 旅游
    二分图匹配(匈牙利算法模板)
    最大流(模板)
  • 原文地址:https://www.cnblogs.com/ylq20122878/p/3639482.html
Copyright © 2020-2023  润新知