HDU_1231最大连续子序列——没用动态规划解题,也没用存储空间,水题

很水的题,另外我感觉我的算法不算是动态规划。。。因为我根本没看出来子问题是什么,但是做出来了

#include

int main()
{
int max_start;
int max_end;
int now_start;
int now_end;
int max;
int now_max;
int now;
int start;
int i, n;
while(1)
{
scanf("%d", &n);
if(n == 0)
break;
max_start = -1;
max_end = -1;
now_start = -1;
now_end = -1;
now_max = -1;
max = -1;
for(i = 0; i < n; i++)
{
scanf("%d", &now);
if(i == 0)
start = now;
if(now_max < 0)
{
if(now >= 0)
{
now_start = now;
now_end = now;
now_max = now;
if(now_max > max)
{
max_start = now_start;
max_end = now_end;
max = now_max;
}
}
}
else
{
now_max += now;
now_end = now;
if(now_max > max)
{
max_start = now_start;
max_end = now_end;
max = now_max;
}
}
}
if(max >= 0)
{
printf("%d %d %d\n", max, max_start, max_end);
}
else
{
printf("%d %d %d\n", 0, start, now);
}
}
return 0;
}

你可能感兴趣的:(HDU_1231最大连续子序列——没用动态规划解题,也没用存储空间,水题)