首页 > 其他 > 详细

BZOJ 2463: [中山市选2009]谁能赢呢?【博弈】

时间:2014-10-05 14:21:18      阅读:268      评论:0      收藏:0      [点我收藏+]

这题不科学~~本以为鬼谷子的钱袋是能在BZOJ写的最短的程序了,这题还要短…..好吧,思考难度神马的还是有点的(至少对我这种蒟蒻来说)。很明显这是道博弈论的题目,在纸上画出了n=1~4的博弈树,发现bob和alice是交替出现的…0.0 当时就在想不会这么巧吧。忍不住百度了下解题,果然是这样的,不过解题上说结论归纳可得。。。。弱弱的写一个自己的理解。设小明和小红交替下棋为一个周期,则根据规则一个周期内小红和小明下的棋的形状将是一个1*2的长方形,很容易得出n*n的棋盘当且仅当n为偶数时能被1*2的长方形完全覆盖,当n为奇数时,仅有一块不能被覆盖,于是类似于NIM游戏的构造法,很容易想到当对方走一步后,我总能走到1*2的长方形的另一端,因此当n为偶数时无论如何都是先手必胜,同理当n为奇数时,由于剩下一块不能被长方形覆盖,因此后手必胜

#include<iostream>

#include<cstdio>

#include <math.h>

#include <string.h>

using namespace std;

int main()

{

   int n;

   scanf("%d",&n);

   while (n!=0)

    {

         if ((n & 1) ==0)printf("Alice\n");elseprintf("Bob\n");

         scanf("%d",&n);

    }

   return 0;

}

BZOJ 2463: [中山市选2009]谁能赢呢?【博弈】

原文:http://www.cnblogs.com/philippica/p/4006938.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!