1. 海盗分金币问题
问题链接:https://mp.weixin.qq.com/s/h10FAeZqVJYGnpmr9mJvjQ
解题思路:https://blog.youkuaiyun.com/BR66666/article/details/80247136
对于两个人的情况,我们很容易知道第一个海盗无论如何决策,第二个海盗均不会同意,都会被扔到海里去。对于5个海盗分金币采用从后向前递推的方法,从第N + 1个海盗分金币的最优局面递推第N个海盗分金币的最优局面。第 N 个海盗要做的事情就是剥夺第N+1个海盗分金币局面中收益最大的金币转移到自身,同时以最少的代价笼络其余海盗,使得同意自己提案的人超过半数人即可。注意,从后向前递推的过程中会出现部分海盗无论如何都无法使自己分金币提案通过的情况,此时在当前阶段可将该分金币的海盗 needMoney 设置为 -1,后续针对该海盗无须为其分配额外的金币,只需保证他不死即可。程序中从后向前递推,贪心最优决策,最终获得第一个海盗分金币的方案。