| 336K | 16MS | GCC | 627B | 2009-01-12 20:44:31 | 
一维的很简单,
就判断一个大于小于0的情况。(两个分支)。(求解过程中可不用建立数组c)
对于二维的
通过一个循环
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
遍历所有情况的起始行和结束行,然后将多行合并为一行(即将一列的元素加起来)
如当i=1,j=2时,就是将1,2行捆绑。即a[1][k]+a[2][k]=b[k],题目就转化为求数组b上的最大子段和。
代码如下:
| 336K | 16MS | GCC | 627B | 2009-01-12 20:44:31 | 
一维的很简单,
就判断一个大于小于0的情况。(两个分支)。(求解过程中可不用建立数组c)
对于二维的
通过一个循环
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
遍历所有情况的起始行和结束行,然后将多行合并为一行(即将一列的元素加起来)
如当i=1,j=2时,就是将1,2行捆绑。即a[1][k]+a[2][k]=b[k],题目就转化为求数组b上的最大子段和。
代码如下: