zoukankan      html  css  js  c++  java
  • CF197A Plate Game

    题目描述

    你有一个长方形的桌子,长度 a ,宽度 b ,以及无限多的半径 r的圆盘。

    两位玩家玩以下游戏:他们轮流把圆盘放在桌子上,使得盘子之间不能互相重叠(但他们的边缘可以互相接触),任何盘子上的任何点都位于桌子的边界内(也就是盘子的任意一部分不能悬空)。在比赛中,人们不能移动已经摆在桌子上的盘子。不能再往桌子上合法的摆圆盘的玩家输。

    你的任务是确定哪个玩家赢了,先放圆盘的玩家称为“First”,后放圆盘的玩家称为“Second”,当然两个球员都发挥得最好。

    输入输出样例

    输入 #1
    5 5 2
    输出 #1
    First
    输入 #2
    6 7 4
    输出 #1
    Second

    解题思路

    简单的博弈论

    我们的策略是,若First能放,则我们后面根据Second对称着放,感性理解一下一定是First win

    AC Code

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    inline int read(){
        char c=getchar();
        int x=0,f=1;
        while(c<'0'||c>'9'){
            if(c=='-')f=-1;
            c=getchar();
        }
        while(c>='0'&&c<='9'){
            x=x*10+c-'0';
            c=getchar();
        }
        return x*f;
    }
    int a,b,r;
    int main(){
        a=read();
        b=read();
        r=read();
        if(2*r<=a&&2*r<=b)cout<<"First"<<endl,exit(0);
        else return cout<<"Second"<<endl,0;
    }
    View Code
  • 相关阅读:
    Android sdk 下载路径
    centos修改用户用户组
    centos7 通过shell切换root用户
    java 服务上传图片到linux没有读写权限
    Mybatis第二天
    Mybatis第一天
    反射
    注解
    多线程第二天
    java---过滤器、监听器
  • 原文地址:https://www.cnblogs.com/Larry-Zero/p/11739797.html
Copyright © 2011-2022 走看看