美文网首页动态规划
lintcode 394+395 游戏博弈

lintcode 394+395 游戏博弈

作者: Ariana不会哭 | 来源:发表于2019-02-06 23:40 被阅读9次

lintcode 394

  • 解题思路: dp
    dp[i]:代表面对i个石子,是否先手必赢。
    dp[i]=(dp[i-1]==false)||(dp[i-2]==false);


    图片.png
class Solution {
public:
    /**
     * @param n: An integer
     * @return: A boolean which equals to true if the first player will win
     */
    bool firstWillWin(int n) {
        vector<bool> dp(n+1);
        if(n==0)
            return false;
        if(n==1||n==2)
            return true;
        dp[0]=false;
        dp[1]=true;
        dp[2]=true;
        for (int i=3;i<=n;i++){
            dp[i]=(dp[i-1]==false)||(dp[i-2]==false);
        }
        return dp[n];
    }
};

lintcode 395

dp[i]: 面对values[i......n-1] 能得到最大的数字差
dp[i]=max(values[i]-dp[i+1],values[i]+values[i+1]-dp[i+2]);


图片.png
class Solution {
public:
    /**
     * @param values: a vector of integers
     * @return: a boolean which equals to true if the first player will win
     */
    bool firstWillWin(vector<int> &values) {
        if(values.empty())
        return true;
        int m=values.size();
        vector<int> dp(m+1,false);
        dp[m]=0;
        for(int i=m-1;i>=0;i--){
            dp[i]=values[i]-dp[i+1];
            if(i<m-1)//not the first one
                dp[i]=max(dp[i],values[i]+values[i+1]-dp[i+2]);
        }
        return dp[0]>=0;
    }
};

相关文章

  • lintcode 394+395 游戏博弈

    lintcode 394 解题思路: dpdp[i]:代表面对i个石子,是否先手必赢。dp[i]=(dp[i-1]...

  • LintCode 跳跃游戏

    给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你...

  • 博弈游戏

    博弈游戏有时候也是一种吃人游戏,商业模式下,套路太深。三思而后行!

  • 博弈游戏

    最近去联通办业务,发现联通又出了一个性价比更高的套餐,于是我就更换了这个套餐,但是全部我多花了360元和300元预...

  • 博弈游戏

    拍卖是博弈游戏中一种方式

  • 博弈游戏

    很多时候我们对很多事物都抱有一种侥幸心理,在没看清事物本质的时候就盲目下决定,最后损人不利己。所以无论做什么事...

  • 无限博弈

    有限博弈与无限博弈,也可以说是有限游戏与无限游戏。 人与人之间的所有的行为都可以划分为这两种有限博弈和无限博弈。前...

  • 什么是零和游戏

    什么是零和游戏? 零和博弈(zero-sum game),又称零和游戏,与非零和博弈相对,是博弈论的一个概念,属非...

  • 12.6【博弈游戏】

    博弈游戏是让参与博弈的人看到了既定的利益,但是这个利益是庄家预设的陷阱,明知陷阱还往里跳,飞蛾扑火的游戏即是博弈游...

  • 詹姆斯·卡斯《有限与无限的游戏》告诉我们的三件事:

    1.人类有大量追求短期输赢的博弈,这是有限游戏,也有一些追求长期、良好地延续下去的博弈,这是无限游戏。 有限游戏,...

网友评论

    本文标题:lintcode 394+395 游戏博弈

    本文链接:https://www.haomeiwen.com/subject/dbzisqtx.html