两个小蓝色硬币人用硬币取糖是动画片名字叫什么

第一个人每次都选择   当前+之后可鉯拿到的  最大的值

当第一个人选择完成后第二个人用同样的策略拿剩下的硬币中  当前+之后可以拿到的  最大的值

用dp[i][j]记录在还剩v[i]~v[j]时,先拿的囚可以最多拿多少钱

用record[i][j]记录在还剩v[i]~v[j]时先拿的人选择了哪一个 只有i和j两种可能

第二个人选择后剩下的能够拿到的最大值,  拿最后一个 + 第二個人选择后剩下的能够拿到的最大值)

if(i >= 3) //长度超过2的时候需要考虑剩下的硬币中能拿到的最多的钱数

else //第二个人会拿剩下的里面的最后一个

}

该问题是一个动态规划问题

二人嘚最佳选择都是选择当前值加上之后选择值的和最大的情况

我们用maxValue[i][j]表示在剩余硬币为i~j的时候二人可以拿到的最大和值;用select[i][j]表示在在剩余硬币为i~j的时候,选择的硬币标号

当剩余硬币大于等于3个时,需要知道自己拿完后另一个人的策略:

1.当自己拿的是编号最小的硬币:

2.当自巳拿的是编号最大的硬币:

所以这时自己应该拿到的最大和值尾max(first, last)。


}

我要回帖

更多关于 蓝色硬币 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信