HDOJ 1003 Max Sum C++
来源:互联网 发布:万科金域名城业主论坛 编辑:程序博客网 时间:2024/06/12 01:13
基本思想是:首先从第一个不为负数的开始算,然后依次向后相加如果相加的和大于目前最大的和的值(设初值:max=0),就将最大值替换掉,并修改现在的子序列最后下标为当前数在数列中的位置,如果相加的和小于零了,就将SUM值为0,从下一位继续开始加。
如果序列全是是零的话就找第一位,如果没有正数的话,就从中找出第一个最大的一个负数,如
#include<iostream>using namespace std;int main(){ int a[100005]; int c=1,t; cin>>t; while (t--) { int max=0 ,sum=0,n,s1=1,s2=1,e=1,j=0,flag=1; cin>>n; for (int i = 0; i < n; i++) { cin>>a[i]; if(a[i]>0) flag=0;//flag==0代表序列里面有正数 } if (flag==0){ for (int j=0 ; j < n; j++) { sum+=a[j]; if (sum>max) { max=sum; e=j+1; s1=s2; } if(sum<0) { sum=0; s2=j+2; } } } else{ max=a[0]; for (int i = 0; i < n; i++) { if(max<a[i]) { max=a[i]; s1=i+1; e=i+1; } } } cout<<"Case "<<c<<":"<<endl; cout<<max<<" "<<s1<<" "<<e<<endl; if (t>0) { cout<<endl; } c++; } return 0;}
0 0
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- hdoj 1003 Max Sum
- HDOJ 1003 Max Sum
- hdoj 1003Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ--1003Max Sum
- hdoj 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- hdoj 1003 Max Sum
- HDOJ Max Sum 1003
- 【HDOJ 1003】 Max Sum
- HDOJ 1003 ( Max Sum )
- html及css复习总结
- 关于打分去掉最高分和最低分的代码
- 两点经纬度求曲面距离
- 报错:table is not mapped……
- Ubuntu 升级后版本号还是显示旧版本号问题解决方法
- HDOJ 1003 Max Sum C++
- 宏定义
- 第十周项目2-二叉树遍历的递归算法
- CodeBlocks调试功能快捷教程
- 泡泡背景
- block,inline和inline-block概念和区别
- <HTML5秘籍>——第7章(CSS3与响应式Web设计)
- Cocos测试:局域网使用clumsy模拟广域网网络延迟
- 水题: OpenJudge (百练 )2807 : 两倍