hdu acm1024 最大m子段和问题
下面是我的代码数据运行正确但在oj上WA了。望改正。注:不要代码。
- Java code
import java.util.Scanner;public class Main { public static void main(String args[]) { int n,m; Scanner cin=new Scanner(System.in); while(cin.hasNext()) { m=cin.nextInt(); n=cin.nextInt(); int a[]=new int[n+1]; int b[]=new int[n+1]; int c[]=new int[n+1]; int max=0; for(int i=1;i<=n;i++) { a[i]=cin.nextInt(); } for(int i=1,j=0;i<=m;i++) { b[i]=b[i-1]+a[i]; for(j=i+1;j<=n-m+i;j++) { b[j]=b[j-1]>c[j-1]?b[j-1]+a[j]:c[j-1]+a[j]; max=max<b[j]?b[j]:max; c[j-1]=b[j-1]>c[j-2]?b[j-1]:c[j-2]; } c[j-1]=b[j-1]>c[j-2]?b[j-1]:c[j-2]; } System.out.println(max); } }}//2 6 -1 4 -2 3 -2 3 8//3 6 2 3 -7 6 4 -5 15//6 8 1 2 3 4 5 6 7 8 36
[解决办法]
c[0]没有初始化,但是默认是0也是对的啊。
测试一组10 20 -1 8 -9 -12 3 -4 6 9 -20 2 31 -2 -7 33 4 -5 8 -18 2 -3也是正确的。看楼下怎么解释