杭电ACM 1003


} #include #include # include int main() { int r = 0,l = 0,i= 0 ,j = 0,num = 0,n;// l用来记录最大左范围r 右 int *a;//,[6]={5,6,5,-4,-7,3}; int sum = 0,max = 0,t= 1; scanf("%d",&n); while(n--) { scanf("%d",&num); a = (int *)calloc(num,sizeof(int)); for(i = 0; i < num ;i ++) scanf("%d",&a[i]); for( l = 0,r = 0,sum = 0,max = a[0],i = 0;i max) { max = sum ; l = i; r = j; } if(sum < 0) { i = j; sum =0; break; } } } printf("Case %d:/n%d %d %d/n",t++,max ,l+1 ,r+1); if( n) printf("/n"); //getchar(); } return 0; }

 

这是杭电1003 一道简单题 事恶化同学讨论后来做的 呵呵 讨论的时候就已经形成思路 但是 最后AC 还是经过了一段较长的时间 其中最令我汗颜的问题是 自己想的一些数据都可以过 但是提交的时候就是错 后来发现是 那个判断语句错了 我用的 是 if else ;这样大部分数据刻意通过 但是有一种特殊情况 会导致错误

最后改成两个 if 语句 就过了

 

这是一个简单动态规划 的题

你可能感兴趣的:(杭电ACM 1003)