记忆化搜索 20分求查错

P1353 [USACO08JAN] Running S

这是一个来自一个月之后的回复2333,您应该已经成功解决了这个问题,不过还是写一个回复好了,这个题目题解不多,讨论区也没什么人. 您的转移方程有问题,您的错误和我一样,应该是没有读清楚题目意思造成的. #### 错误方程如下 f(i,0)=max(f(i-1,0),f(i-1,1)) f(i,j)=max(f(i-1,j+1),f(i-1,j-1)+d(i)) #### 错误原因和正确的题目理解 题目要求如果开始休息必须休息到疲劳度为0才可以,显然第二个方程不对. 可以把题目理解成从d数组中选取任意多段,满足两段之间距离等于前一段长度,最大化所有段之和,基于这个理解我们应该列出以下正确方程. #### 正确的状态转移方程. f(i,0) = max( f(i-1,0), max{f(i-j,j) where j in (0,i))} ) f(i,j) where j!=0 = f(i-1,j-1)+d(i) 统计答案的话就是 f(n,0)
by hehelego @ 2018-08-24 00:11:40


@[呵呵lego](/space/show?uid=15295) 大佬完美解决了我的错误!眼瞎一时,浪费一时
by lingerleaf @ 2018-08-30 13:35:35


@[呵呵lego](/space/show?uid=15295) 谢谢大佬,我也知道哪里错了
by 星灵王小号 @ 2018-11-07 10:38:10


@[星灵圣王](/space/show?uid=153083) qwq
by hehelego @ 2018-11-07 10:43:37


@[hehelego](/space/show?uid=15295) 谢谢
by Lacer @ 2019-01-30 14:26:04


@[hehelego](/user/15295) 感谢大佬,懂了。orz orz
by kuansoudafahao @ 2019-11-09 08:01:47


|