码迷,mamicode.com
首页 > 其他好文 > 详细

26-又是取石子(博弈)

时间:2017-08-26 02:44:58      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:输出   空格   nbsp   内容   描述   博弈   names   for   cin   

 /*                                        又是取石子
 题目内容:

 "有甲乙两个人玩取石子游戏,共有n个石子(1<=n<=30000)两个人轮流取,甲先取.每次最多取m个(1<=m<=30000)最少取一个,当轮到谁取的时候没有石子了,谁就赢.
比如4个石子,每次最多取3个,那末先取的人(甲)一定赢n和m谁大没有限制.)
(甲拿走3个,乙只拿走1个,下面轮到甲了,但是没有石子了,甲赢了.)
现在要求你写一个程序,输入n(总的石子个数),最多可以取的石子个数m,输出甲(先取的人)是否会赢,会赢的话输出YES,否则输出LOSE.
我们这里假设甲乙两个人都采取最好的策略,也就是甲乙都非常想赢而且足够聪明.
比如输入11 4 输出LOSE"

输入描述

整数n m, 空格隔开


输出描述

YES或者LOSE


输入样例

11 4


输出样例

LOSE
*/
//思路:1为必败局,那么可以知道2 到 m+1为必胜局,m + 2无论怎么取都是在2到m+1之间,所以m + 2 为必败局,依次 类推。

#include <iostream>
using namespace std;

int main(){
    int n, m;
    cin >> n >> m;
    if(n == 1)
        cout << "LOSE";
    else{
        int k;
        for(int i = 1; i <= n; i++){
            if(i * (m + 1) + 1 == n){
                cout << "LOSE";
                return 0;    
            }
        }
        cout << "YES";
    }
    return 0;
}

26-又是取石子(博弈)

标签:输出   空格   nbsp   内容   描述   博弈   names   for   cin   

原文地址:http://www.cnblogs.com/zhumengdexiaobai/p/7429807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!