作业帮 > 综合 > 作业

杭电2047牛肉串有更省时间的递推公式吗?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 02:16:15
杭电2047牛肉串有更省时间的递推公式吗?
我不知道你说的更好的递推公式是什么意思,这个是一个递推,也可以说是一类简化的动态规划题目,先处理出所有的情况然后O(1)的输出.我写的代码如下:
#include
const int MAX = 40;
long long dp[2][MAX];
int main()
{
\x05dp[0][0] = 1,dp[1][0] = 0;
\x05for (int i = 1; i < MAX; ++i)
\x05{
\x05\x05dp[0][i] = 2 * (dp[0][i - 1] + dp[1][i - 1]); //前一个任何状态都可以组成不以'O'结尾的字符串
\x05\x05dp[1][i] = dp[0][i - 1];\x05\x05\x05\x05\x05\x05//前一个不以'O'结尾的字符串才可以组成以'O'结尾的字符串
\x05}
\x05int n;
\x05while (scanf("%d",&n) != EOF)
\x05{
\x05\x05printf("%I64d\n",dp[0][n] + dp[1][n]);
\x05}
\x05return 0;
}