CF197A Plate Game

Posted larry-zero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF197A Plate Game相关的知识,希望对你有一定的参考价值。

题目描述

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

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

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

输入输出样例

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

解题思路

简单的博弈论

我们的策略是,若First能放,则我们后面根据First对称着放,感性理解一下一定是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

 

以上是关于CF197A Plate Game的主要内容,如果未能解决你的问题,请参考以下文章

[CodeForces - 197A] A - Plate Game

CF377D Developing Game

cf299C Weird Game

CF765C Table Tennis Game 2

CF 1215 D Ticket Game (博弈)

cf--703--A-- Mishka and Game