摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1559这题相对上一题来说多了个限制条件,矩阵大小要是x*y的,这样的话倒更简单,只需计算出连续的x行,连续的y列和最大和即可,纵列和的求解用到了压缩的思想,就是把连续的x行上的同一列的数都相加存储在一个数组列对应的的下标元素里面 1 #include 2 #include 3 int a[1001][1001],n,m,x,y; 4 int maxx(int *b,int k) 5 { 6 int i,max=0,sum[11111]; 7 for(i=0;imax)max=sum[i];17... 阅读全文
posted @ 2013-08-10 17:29 执着追求的IT小小鸟 阅读(318) 评论(0) 推荐(0) 编辑
摘要: #include#includeint a[110][110],n;int maxx(int *b,int m){ int i,max,now; for(i=0;ib[i]) now+=b[i]; else now=b[i]; if(max0时(即前面的段加上a[j]这一段值会更大,自然把a[j]这一段接上)b[j]=b[j-1]+a[j],否则(由于前面的段为负值,加上a[j],会使值变小,这样的话,我们将前面的段去掉,a[j]即是最大值)b[j]=a[j].故b[j]的动态规划递归式为 b[j]=max(b[j-1]+a[j],a[j]... 阅读全文
posted @ 2013-08-10 16:39 执着追求的IT小小鸟 阅读(220) 评论(0) 推荐(0) 编辑