Pku acm 2081 Recaman's Sequence 动态规划题目解题报告(三)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2081

一道很简单的动态规划,根据一个递推公式求一个序列,我选择顺序的求解,即自底向上的递推,一个int数组result根据前面的值依此求出序列的每一个结果,另外一个boolean数组flag[i]记录i是否已经出现在序列中,求result的时候用得着,这样就避免了查找。核心的java代码为:

for(i=1;i<=500000;i++)

{

    if(result[i-1]-i>0&&flag[result[i-1]-i]==false)

    {

        result[i] = result[i-1]-i;

        flag[result[i-1]-i] = true;

    }

    else

    {

        result[i] = result[i-1]+i;

        flag[result[i-1]+i] = true;

    }

}

 

 
带有详细注释的代码可以在http://download.csdn.net/user/china8848/获得

你可能感兴趣的:(Pku acm 2081 Recaman's Sequence 动态规划题目解题报告(三))