动态规划问题。

M阳光 2013-12-14 08:42:43
做ACM题遇见个动态规划问题:Adjacent Bit Counts 我大概描述下题:
用户输入正整数 n ,k
X1,X2...只能为0或1
输出满足
X1*X2+X2*X3+....+X(n-1)*Xn=k;
情况的个数


表示第一次接触动态规划;看到网上给出的动规方程为:
i所达到的值,j某个位置

for(i = 1; i < MAXN; i++)
for(j = 1; j < MAXN; j++)
{
dp[i][j][0] = dp[i][j-1][0] + dp[i][j-1][1];
dp[i][j][1] = dp[i-1][j-1][1] + dp[i][j-1][0];
}
return 0;

表示对这个方程非常不懂。

还有初始化:
dp[0][1][1] = dp[0][1][0] = 1;
for(j = 2; j < MAXN; j++)
{
dp[0][j][0] = dp[0][j-1][1] + dp[0][j-1][0];
dp[0][j][1] = dp[0][j-1][0];
}


不知道哪位可以帮我解释下。
为什么这样就可以算出结果,是什么原理。?
麻烦各位高手了。
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pump天天学习 2013-12-14
  • 打赏
  • 举报
回复
引用 2 楼 M173475237 的回复:
[quote=引用 1 楼 sinservice 的回复:] 不懂。 我接触的动态规划,是指编译器代码生成技术的树匹配技术和动态规划,不理解主贴的意思。
嗯。我说的是算法中很重要的一种。。 也就是常说的DP。 那个方程也叫状态转移方程[/quote] 《算法导论》
M阳光 2013-12-14
  • 打赏
  • 举报
回复
引用 1 楼 sinservice 的回复:
不懂。 我接触的动态规划,是指编译器代码生成技术的树匹配技术和动态规划,不理解主贴的意思。
嗯。我说的是算法中很重要的一种。。 也就是常说的DP。 那个方程也叫状态转移方程
「已注销」 2013-12-14
  • 打赏
  • 举报
回复
不懂。 我接触的动态规划,是指编译器代码生成技术的树匹配技术和动态规划,不理解主贴的意思。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧