HDU 1003 Max Sum
来源:互联网 发布:矩阵理论答案 编辑:程序博客网 时间:2024/06/18 06:49
一开始用暴力枚举,两层循环时间复杂度为O(n^2),提交不出意外的超时了。
想要不超时,很直观的办法就是减少一层循环就行。
思路是:
假设你已知一段序列中的最大子序列,你可以发现这段子序列的第一个数的前面那些数的和是小于零的,这段序列的最后一个数的后面那些数是小于零的。
有这一点可以减小一层循环。
#include<iostream>#define Manx 100010using namespace std;int main(){int T,k=0;cin>>T;while(T--){int N;cin>>N;int f[Manx];int start=0,end=0,max=-1001,sum=0,startbegin=0,endfinsh=0;if(k++) cout<<endl;for(int i=0;i<N;i++) cin>>f[i];for(int i=0;i<N;i++){ if(sum>=0) { sum+=f[i]; end=i;}else{sum=f[i];start=i;end=i;} if(sum>max){ max=sum; endfinsh=end; startbegin=start; } }printf("Case %d:\n",k);cout<<max<<" "<<startbegin+1<<" "<<endfinsh+1<<endl; } return 0;}
阅读全文
0 0
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- hdu 1003 Max Sum
- HDU-1003 max sum
- HDU 1003 - Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 max sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- Hdu 1003 - Max Sum
- HDU-1003-Max Sum
- hdu - 1003 - Max Sum
- HDU-3038-How Many Answers Are Wrong [带权并查集]
- 多目标优化问题中常见分解方法的理解
- hdu 4568 (状压dp TSP问题)
- 链表面试题之链表相交问题
- 机器学习导论
- HDU 1003 Max Sum
- 逆元粗解
- 图像差分的方法
- 接受图片流并且生成图片
- Dji Mobile SDK 基础实现(一)
- 牛客网---2016---小米懂二进制
- 使用ROS和TensorFlow进行深度学习
- 浅谈Java SE、Java EE、Java ME三者的区别
- 聊天记录被误删后千万不能做这些事!这样会...