• 1461.致命游戏 (博弈)


    1461.致命游戏
    http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1461
    Time Limit: 3000 MS         Memory Limit: 65536 K 
    Total Submissions: 84 (53 users)         Accepted: 35 (35 users) 
    [ My Solution ]

     

    Description

            程序员Alice和Bob摊上大事了,被判了死刑。恰巧这天遇上“网宿科技杯”厦门大学第四届程序设计积分赛,于是主办方决定大赦其中一个人的刑罚。
            主办方开发了一个游戏:有一个n*m大小的矩形格子阵列,左下角为(1, 1)格子,放了瓶毒药。Alice和Bob依次选择一个格子(x0, y0),挖去所有(x, y)格子,其中x和y满足x>=x0并且y>=y0,最终拿到毒药的人判处死刑。一个例子如图所示,初始状态是一个3*8的矩形格子阵列,Alice首先选择了(2,6)点,Bob选择了(3,2)点变成如下状态。


             假设Alice和Bob都是绝顶聪明的,那么,请问谁能够活下来?

     

    Input

    输入只有一行,为两个整数n, m. 其中1<= n, m <= 1024.

     

    Output

    若Alice存活,则输出Alice;否则输出Bob

     

    Sample Input

    999 999

     

    Sample Output

    Alice

     

    Hint

    Alice一开始选择(2, 2)点,则图形变成两条边相等的L型,那么此时,Bob在一条边上做任意举动,Alice则在另一条边上做相同的举动,则最后拿到毒药的一定是Bob。

     

    Source
    dumpling @xmu @UCAS
     
    #include<iostream>
    #include<cstdio>
    
    using namespace std;
    
    int n,m;
    
    int main(){
    
        //freopen("input.txt","r",stdin);
    
        while(~scanf("%d%d",&n,&m)){
            if(n<m){
                int tmp=n;n=m;m=tmp;
            }
            if(n==1 && m==1)
                printf("Bob\n");
            else if(n==2 && m==1)
                printf("Alice\n");
            else if(n==m || (n-2)!=(m-2))
                printf("Alice\n");
        }
        return 0;
    }
  • 相关阅读:
    网络编程-Python的socket库
    Python -用虚拟环境保存库文件
    Python --文件的读写
    VIM--常用操作
    libpcap -学习1
    Python -装饰器
    C++ 关于map,function的简单应用
    UVAlive 3635 (13.08.23)
    C语言中的整型提升(integral promotion)
    [置顶] 从一位数组中提取最小k个元素
  • 原文地址:https://www.cnblogs.com/jackge/p/3059904.html
Copyright © 2020-2023  润新知