10152. 「一本通 5.1 练习 3」矩阵取数游戏

题意

帅帅经常和同学玩一个矩阵取数游戏:
对于给定的 $n\times m$ 的矩阵,矩阵中每个元素 $a_{ij}$ 均为非负整数。游戏规则如下:
1. 每次取数时必须从每行各取走一个元素,共 $n$ 个,$m$ 次取完所有元素。
2. 每次取走的各个元素只能是该元素所在行行首或行尾。
3. 每次取数都有一个的分值,为每行取数得分之和,每行取数得分$=$被取走元素值$\times 2^i$,其中 $i$ 表示第 $i$ 次取数,从 $1$ 开始计数。
4. 游戏结束时,总得分为 $m$ 次取数得分之和。
帅帅想让你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。

思路

设$f[i][j]$表示当前$dp$行的区间为$i\sim j$的最大值。
很显然可以得出$dp$转移方程:$dp[i][j]=max${$dp[i+1][j]+2^{m-(j-i)}\times v[i],dp[i][j-1]+2^{m-(j-i)}\times v[j]$}
然后一看这道题的数据范围需要用高精度
但本人很懒,就用__int128来替代了

Code

暂无评论

发送评论


				
上一篇
下一篇