• 51nod1534 棋子游戏


    思路分析:我们先考虑,Vasiliy是比Polycarp有优势的,他可以在没有阻拦且在未到边界的情况下一次走出Polycarp两次的路,所以我们的Polycarp想要获胜就有了两种方法,第一种是在Vasiliy尽可能多的走斜边的情况下Polycarp步数仍然较少,此时由于Polycarp走的相对较慢,他一定更靠近终点,所以Vasiliy是一定堵不着他的,于是他稳赢,再来考虑在Vasiliy尽可能多的走斜边的情况下Polycarp步数较多的情况,此时虽然Polycarp步数多,但他依然有可能比Vasiliy更靠近终点,如果Polycarp在Vasiliy和两边界所形成的矩形之内,Polycarp想要获胜一定会去堵Vasiliy,且一定可以成功,因为Vasiliy一定会靠近终点,相对靠近了Polycarp,此时可以Polycarp就可以守株待兔了。

    代码:

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 using namespace std;
     5 const int N=1e6+10;
     6 int count(int a,int b){
     7     int cnt=0;
     8     while(a>0&&b>0){
     9         a--;b--;
    10         cnt++;
    11     }
    12     cnt+=a+b;
    13     return cnt;
    14 }
    15 int main(){
    16     int x,y,a,b;
    17     scanf("%d%d%d%d",&x,&y,&a,&b);
    18     int step1,step2;
    19     step1=x+y; //计算两个人各自的步数 
    20     step2=count(a,b);
    21     if(step1<=step2){//Polycarp步数少 
    22         printf("Polycarp
    ");
    23         return 0;
    24     }
    25     else if(x>a||y>b){//Polycarp在Vasiliy内 
    26         printf("Vasiliy
    ");
    27         return 0;
    28     }
    29     printf("Polycarp
    ");
    30     return 0;
    31 }
    View Code
  • 相关阅读:
    JSOI2015 R3 退队滚粗了
    bzoj3774
    bzoj1426
    bzoj3294
    java 位向量
    java 移位操作
    java 枚举类型的使用
    mysql 修改 root 用户密码
    几种数据库连接池的比较
    linux python 安装 pip出现 No module named 'setuptools'
  • 原文地址:https://www.cnblogs.com/li-jia-hao/p/12994067.html
Copyright © 2020-2023  润新知