Blog·Tanky WooABOUTRSS

HDOJ 1081 To The Max

29 Jul 2010
这篇博客是从旧博客 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;
}