首页 > 其他 > 详细

HDU 1003

时间:2014-07-23 14:46:56      阅读:250      评论:0      收藏:0      [点我收藏+]

本来不想写的

以前写过一次没过

现在每次打开HDU都会显示没完成

看着不爽

直接暴力肯定超时

其实那数组遍历一次就可以了

注意下标变化的条件

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int T;
 8     cin>>T;
 9     int t = 0;
10     while(T--)
11     {
12         t++;
13         int N;
14         cin>>N;
15 
16         int begin = 1;
17         int end = 1;
18         int left = 1;//这个是每一次累加的左端
19         int max = 0;
20         int sum =0;
21 
22         for(int i = 1;i<=N;i++)
23         {
24             int temp;
25             cin>>temp;
26             if(i==1)
27             {
28                 max = temp;
29             }
30             sum+=temp;
31             if(max<sum)//把这一次累加更新为最大的
32             {
33                 max = sum;
34                 begin = left;
35                 end = i;
36             }
37             if(sum<0)//小于0了那么前面都不要了
38             {
39                 sum = 0;
40                 left = i+1;//此位为负,直接到下一位
41             }
42         }
43 
44         cout<<"Case "<<t<<":"<<endl<<max<<" "<<begin<<" "<<end<<endl;
45 
46         if(T)
47             cout<<endl;
48 
49     }
50     return 0;
51 }

HDU 1003,布布扣,bubuko.com

HDU 1003

原文:http://www.cnblogs.com/Run-dream/p/3862659.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!