九度 1011
2016-04-10 15:32
281 查看
1.动态规划(其实我不知道这是怎么回事,只是很久之前看视频看到过这个方法有印象就这么写了)
2.由于还要考虑到最大连续子序列,因此区间判定尤其重要,因此,会对于区间的开始需要采取措施保证是最大连续子序列
#include<cstdio>
int main()
{
int cursum,maxsum;
int k;
int _start,_end,maxstart;
int _count;
int flag1,flag2;;
int input;
int maxlength,curlength;
while((scanf("%d",&k))!=EOF && k!=0)
{
_count=0;
_start=0;
_end=0;
cursum=0;
maxsum=0;
flag1=0;
flag2=0;
maxlength=0;
curlength=0;
maxstart=0;
int strstart,strend;
for(int i=0;i<k;i++)
{
scanf("%d",&input);
if(input<0)
{
_count++;
}
if(i==0)
{
maxstart=input;
strstart=input;
_start=input;
}
if(i==k-1)
{
strend=input;
}
if(flag1==1)
{
_start=input;
flag1=0;
}
cursum+=input;
if(cursum>maxsum)
{
maxlength++;
curlength++;
_end=input;
maxsum=cursum;
maxstart=_start;
}
if(cursum==maxsum)
{
if(curlength>maxlength)
maxstart=_start;
}
if(cursum < 0)
{
cursum=0;
curlength=0;
flag1=1;
flag2=1;
}
}
if(_count==k)
printf("%d %d %d\n",maxsum=0,strstart,strend);
else
{
printf("%d %d %d\n",maxsum,maxstart,_end);
}
}
return 0;
}
2.由于还要考虑到最大连续子序列,因此区间判定尤其重要,因此,会对于区间的开始需要采取措施保证是最大连续子序列
#include<cstdio>
int main()
{
int cursum,maxsum;
int k;
int _start,_end,maxstart;
int _count;
int flag1,flag2;;
int input;
int maxlength,curlength;
while((scanf("%d",&k))!=EOF && k!=0)
{
_count=0;
_start=0;
_end=0;
cursum=0;
maxsum=0;
flag1=0;
flag2=0;
maxlength=0;
curlength=0;
maxstart=0;
int strstart,strend;
for(int i=0;i<k;i++)
{
scanf("%d",&input);
if(input<0)
{
_count++;
}
if(i==0)
{
maxstart=input;
strstart=input;
_start=input;
}
if(i==k-1)
{
strend=input;
}
if(flag1==1)
{
_start=input;
flag1=0;
}
cursum+=input;
if(cursum>maxsum)
{
maxlength++;
curlength++;
_end=input;
maxsum=cursum;
maxstart=_start;
}
if(cursum==maxsum)
{
if(curlength>maxlength)
maxstart=_start;
}
if(cursum < 0)
{
cursum=0;
curlength=0;
flag1=1;
flag2=1;
}
}
if(_count==k)
printf("%d %d %d\n",maxsum=0,strstart,strend);
else
{
printf("%d %d %d\n",maxsum,maxstart,_end);
}
}
return 0;
}
相关文章推荐
- Web前端前沿技术专业术语解读
- 远程线程注入
- 小技巧当从后台传入数据时不要传null最好是个空对象入json中
- hibernate初探
- Fragment的使用与通信方式小结
- 【UVA11478】Halum (最短路解差分约束)
- 邁向IT專家成功之路的三十則鐵律 鐵律二十五:IT人屈辱之道-十倍奉還
- 第七周
- Sort Colors
- @SuppressWarnings注解
- Move Zeroes
- Linux上安装使用Redis
- 【剑指offer系列】 数组中出现数字超过一半的数字___29
- poj 2528 Mayor's posters
- SQL函数——CASE
- java插入排序(个人总结)
- Java实现数组反转翻转的方法
- 栈的后缀表达式求值
- JavaWeb总结(一)—Servlet
- Quartz使用-入门使用(java定时任务实现)