(未写)tyvj-1075-硬币游戏
传送门:http://new.tyvj.cn/Problem_Show.aspx?id=1075
有点小转弯。
sum[i]表示下至上i个的总价值
f[i][j]表示剩下i个硬币上一轮对方取j个
转移方程
f[i][j]=max( sum[i]-f[i-k][k] ) 1<=k<=j*2
时间复杂度n^3显然不行
观察转移方程发现
f[i][j] 与 f[i][j-1] 均枚举了 k=1,2……2*j-1,2*j-2
所以上面方程中 枚举的k 其实枚举 j*2-1和j*2 就包含了所有情况了。
貌似还有一种方法是单调队列,暂不懂