首页 > 其他 > 详细

HDU 1003

时间:2019-03-28 23:12:36      阅读:139      评论:0      收藏:0      [点我收藏+]

一道思维题,求和最大的子序列

https://vjudge.net/problem/HDU-1003

#include<iostream>

using namespace std;

int num[100005];

int main(){
    int t,n,i;
    cin>>t;

    for(i = 1;i <=t;i++){
        int start = 1,end,sum = 0,ans = -INT_MAX,temp= 1;
        cin>>n;
        //输入 
        for(int j = 1;j <= n;j++)
            cin>>num[j];
            
        //核心代码 
        for(int k = 1;k <=n;k++){
            if(sum >= 0)
                sum += num[k];
            else{
                sum = num[k];
                temp = k;
            }
            
            if(sum > ans){
                ans = sum;
                start = temp;
                end = k;
            }
        }
        //输出 
        cout<<"Case "<<i<<":\n";
        cout<<ans<<" "<<start<<" "<<end<<endl;
        if(i!=t)
            cout<<endl; 
        
    }
    
    return 0;
} 

 

HDU 1003

原文:https://www.cnblogs.com/lightac/p/10618442.html

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