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

来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 04:28:07
杭电2047牛肉串有更省时间的递推公式吗?
xS[oA+#F*>@1>hCk@FdiܭRMژ^ԴP\7TbcR̙9ߜ Clc;ywQ~S-vVj3KtCrߒVo6z*luFgd [9 Ju!wW1Ra`SerI@l]M7@.05Q}qeZgWOfжh`@G\kRֽTu zUķt{^kֆ*8'b)!I45L'zST#vEpE,9-zN'xe( L*$!R^A@.o8/`FfHDq>$HƢxFr\;؉ř΀`?Oclo Đ_3l\НMGqH_,

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

杭电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;
}