版本2和4间的区别 (跳过第2版)
于2008-11-05 15:45:36修订的的版本2
大小: 1323
编辑: 218
备注:
于2008-11-05 15:45:51修订的的版本4
大小: 1324
编辑: 218
备注:
删除的内容标记成这样。 加入的内容标记成这样。
行号 2: 行号 2:
!cplusplus #!cplusplus

   1 //533278 2008-03-30 19:03:17 Accepted 1003 31MS 264K 1206 B C++ whiteTiger 非DP方法 
   2 #include <stdio.h>
   3 
   4 int main(){
   5     int CaseNum;
   6     scanf("%d", &CaseNum);
   7     int a[100000];
   8     for(int Case = 0; Case < CaseNum; Case++){
   9         int num;             
  10         scanf("%d",&num);
  11         for(int i = 0; i < num; i++){
  12             scanf("%d", &a[i]);
  13         }
  14         int currentSum, maxSum, start, end;
  15         //最大子段和
  16         start = 0;
  17         end = 0;
  18         maxSum = -1001;     //记录最大值,n范围-1000-1000
  19         currentSum = 0;     //记录当前总和
  20         for(int i= 0; i < num; i++){
  21             for(int j = i; j  < num; j++){
  22                 currentSum += a[j];
  23                 if(currentSum > maxSum){
  24                     maxSum = currentSum;
  25                     start = i+1;
  26                     end = j+1;
  27                 }
  28                 if(currentSum < 0){
  29                     i = j;
  30                     currentSum = 0;
  31                     break;
  32                 }               
  33             }
  34             currentSum = 0;
  35         }
  36         printf("Case %d:\n", Case+1);
  37         printf("%d %d %d\n", maxSum, start, end);
  38         if(Case != CaseNum -1){
  39             printf("\n");
  40         }
  41     }
  42     return 0;
  43 }

hdu1003 参考答案 (2008-11-09 15:34:06由218编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.