[求教]杭电ACM 1003题 MAX SUM

2024年11月17日 16:14
有3个网友回答
网友(1):

我也想了半天才想明白……你的核心算法有问题
我们举例说明
-1 -3 2 -4 -5
按题目要求应该输出 2 3 3 对吧
但是你的程序根本找不到lef和rig,因为从左往右没有某个和大于0
然后,我把两处max=0修改为max=-2147483648提交,仍然是WA,应该是还有别的问题
比如,-2 -4 -5 -1 -4这个数列,题目的输出应该是-1 4 4 但是显然这个程序无法处理全是负数的数列,故应将此情况单独考虑。
解决方案:另外定义flag,读入a[j]前令flag=0,一旦读到一个正数令flag=1.到了下面,如果flag=1则正常执行你写的这部分程序,如果flag=0执行另一段单独考虑负数的程序即可。

另外,看你好像是ACM初学,建议你看一下算法导论的第一章,里面有这道题的四种算法,写的很好
http://wenku.baidu.com/view/1e1b401ca300a6c30c229f76.html

网友(2):

想实现什么功能

网友(3):

int 最多能定义65535 a[100000]太大了~~