这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1081
汗,这题求最长子序列我居然忘了。。。
int LS(int *line) // 正确
{
int i;
int temp = line[0], sum = line[0];
for(i = 1; i 0)
temp += line[i];
else
temp = line[i];
if(temp > sum)
sum = temp;
}
return sum;
}
我居然记成了:
int LS(int *line) // 错误!
{
int i;
int temp = line[0], sum = line[0];
for(i = 1; i 0)
temp += line[i];
else
temp = line[i];
if(temp > sum)
sum = temp;
}
return sum;
}
上面这个错误的随便给组数据就行了,如: 1 -2 3 按错误的是输出2~~~ 结果一直WA。 而之前做过2题居然都忘了~~~~ HDOJ 1003 Max Sum HDOJ 1231 最大连续子序列 大家可以一起做了。 代码:
// Author: Tanky Woo
// HDOJ 1081
// Accepted 1081 15MS 224K 891B C++ Tanky Woo
#include
using namespace std;
int aMatrix[103][103];
int aLine[103];
#define INF -100000
int nNum;
int LS(int *line);
int main()
{
//freopen("input.txt", "r", stdin);
while(scanf("%d", &nNum;) != EOF)
{
memset(aMatrix, 0, sizeof(aMatrix));
int maxSum = INF;
for(int i=0; i maxSum)
maxSum = sum;
}
}
printf("%d\n", maxSum);
}
return 0;
}
int LS(int *line)
{
int i;
int temp = line[0], sum = line[0];
for(i = 1; i 0)
temp += line[i];
else
temp = line[i];
if(temp > sum)
sum = temp;
}
return sum;
}