HDU 1003 Max Sum

来源:互联网 发布:超级淘宝系统小说手机 编辑:程序博客网 时间:2024/04/29 21:17

接触的第一道动态规划的题,起先自己用穷举法做的,时间复杂度为N3 没想太多结果超时了,,最后在网上查看了动态规划的思想,重新写了一个,以后自学了动态规划再细细研究,先mark,

#include<iostream>using namespace std;void max_s(int shu[],int n ,int sig){    int start=0,ends=0;    int sum,maxs;    sum=maxs=shu[0];    int x=0;for(int i=1;i!=n;++i){  int tem=shu[i];  if(tem>sum+tem){sum=tem;x=i;}  else {sum+=tem;  }  if(sum>maxs){    start=x;ends=i;maxs=sum;  }}cout<<maxs<<" "<<start+1<<" "<<ends+1<<endl;if(sig==1){cout<<"\n";}}int main(){int n;cin>>n;int shu[100000];for(int i=0;i!=n;++i){    int n2;    cin>>n2;    for(int j=0;j!=n2;++j){        cin>>shu[j];    }    cout<<"Case "<<i+1<<":"<<endl;  if(i!=n-1){   max_s(shu,n2,1); }  else {max_s(shu,n2,0);}}return 0;}


0 0
原创粉丝点击