2013年5月8日

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1081 题意:在一个有正负数的矩阵当中找一个子矩阵,使得这个子矩阵的sum最大,所谓sum就是子矩阵中所有数字的和。 思路:刚看到题目的时候觉的像是dp,因为以前做过类似的在矩阵中找最大正方形的题目,觉得是二维dp,又想到对于一个数,如何判断它是否应该存在于一 个矩阵当中,不仅涉及行,还涉及到列,而且还要搞的和最大,因为队友问过我那个hdu的1003题,那个题,我早以前做的时候其实也没理解透,后来又给他 讲了一遍,感觉这个题差不多就是那个的二维版本。下面是代码:View Code #include <a 阅读全文
posted @ 2013-05-08 20:19 Raining Days 阅读(143) 评论(0) 推荐(0)
摘要: 这道题的题意很简单,看图就可以搞定了。 思路:维护一个单调递增的栈,为什么要这样做呢。因为高度越小的柱形在算面积的时候肯定在宽度方面要占优吧,也算是避免算不到高度小却宽度大的长方形,所以要这样做。这样当当前柱形的高度小于栈顶柱形的高度的时候就把小于当前柱形高度的指针弹出,与此同时计算一下所有比它高的柱形的面积和。然后把当前柱形与弹出栈的柱形合并成一个柱形,宽度是好几个1,高度是当前柱形的高度,然后再压入栈。ps:最后这个想法不是我的,我想到要弹栈那里就不会了,是参考网上大牛的,具体来源我找了下,没找到,不好意思。下面是代码:View Code #include <algorithm> 阅读全文
posted @ 2013-05-08 20:01 Raining Days 阅读(171) 评论(0) 推荐(0)

导航