中级农民
- 积分
- 108
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2016-2-2
- 最后登录
- 1970-1-1
|
本帖最后由 staycrazy 于 2017-8-5 14:33 编辑
6维dp(感觉应该根据剩余牌数等等的关系可以简化到5维左右,懒得想了)
opt[#remaining cards][current player][player1 hand][player2 hand][player3 hand][player4 hand] = max(opt[#remaining cards - 1][current][p1][p2][p3][p4], opt[#remaining cards - 1][next player][p1][p2][p3][p4])
大概就是这样,刚才翻了一下,其实楼上有人说过了。
时间"复杂度"还好,52*4*21^4种状态,算个几秒钟就出来了。
(想了一下,漏了一点:)
略微tricky的是player hand的状态,因为可以有1个到4个Ace。这里其实也简单,在发牌的时候我们就可以决定这张Ace是当1还是10,然后转移方程里面多加上一个状态即可。
|
|