zoukankan      html  css  js  c++  java
  • 课堂练习 · 求二维整数数组的子数组之和的最大值之二

    小组讨论成员:王鑫楠,安娜

    如题,子数组不一定为矩形块,例如:

                                                                          

    该数组最大子数组如黄色块部分所示。

    我们的算法思路:

          1)先遍历二维数组,找出所有正整数及0组成的所有子数组块,如图2所示:

                                 

    2)寻找子数组块之间权最小的路径,使得两个子数组块相加大于两个中的每个数组块,

              从绝对值最小的负数开始找起:

                                

          【注意:任意两个整数块之间权最小的路径不一定是整个最大子数组块中某两个子数组块连接路径,路径的选择必须从整体考虑。如图3所示,红色与蓝色子数组块之间连接,(0,3)即-3应是它们的最小路径,但从整体考虑,为连接粉色数据块,显然(0,3)就不是最优选择。】

              所求即数组的最大子数组。

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