题解 洛谷P5424 【[USACO19OPEN]Snakes G】

这是一道动态规划题目。

我们先预处理出Sum数组,Sum[i][j]表示[i,j]这个区间用一个网捕捉的最小浪费。

我们不妨这样计算:Sum[i][j]=(j-i+1)*Max-Prefix

其中Max表示[i,j]区间蛇的最大值,Prefix表示[i,j]的和。

然后我们可以动态规划了。

设状态:Dp[i][j]表示前i组蛇,用j个网的最小浪费。

易证:Dp[i][j]=min(Dp[i][j],Dp[k][j-1]+Sum[k+1][i])

意思是,这个点会从前一个点k推过来,前k个点用了j-1个网,k+1到i用了1个网(我们预处理过了)。

这样就可以A掉了,代码不放了。

posted @ 2020-08-08 14:40  Bushuai_Tang  阅读(107)  评论(1编辑  收藏  举报