题目内容

波雷卡普和瓦西里喜欢简单的逻辑游戏。今天他们玩了一个游戏,这个游戏在一个很大的棋盘上进行,他们每个人有一个棋子。他们轮流移动自己的棋子,波雷卡普先开始。每一步移动中,波雷卡普可以将他的棋子从\((x,y)\) 移动到\((x-1,y)\) 或者\((x,y-1)\) 。而瓦西里可以将他的棋子从\((x,y)\) 移动到\((x-1,y)\) ,\((x-1,y-1)\) 或者\((x,y-1)\) 。当然他们可以选择不移动。

还有一些其它的限制,他们不能把棋子移动到\(x\)或\(y\)为负的座标,或者移动到已经被对手占据的座标。最先到\((0,0)\)的人获胜。

现在给定他们棋子的座标,判断一下谁会获胜。

输入格式

单组测试数据。第一行包含四个整数\(xp,yp,xv,yv(0≤xp,yp,xv,yv≤10^5)\),表示波雷卡普和瓦西里棋子的座标。输入保证他们的棋子在不同位置,而且没有棋子在\((0,0)\)。

输出格式

如果波雷卡普获胜,输出Polycarp,否则输出Vasiliy。

样例输入

2 1 2 25

样例输出

Polycarp

思路

波雷卡普能否取胜就看能不能截住瓦雷西走对角线的路径,或者瓦雷西完全走对角线的最短距离还是大于等于波雷卡普的路径长度。前一种情况只要满足波雷卡普的坐标在第二个人左下角即可。后一种情况,波雷卡普的最少步数是\(x+y\),因为瓦雷西可以斜着走所以最少步数是\(max(x,y)\)。注意当步数相等时是Polycarp获胜,因为波雷卡普先走。

代码

#include <bits/stdc++.h>
using namespace std; int main(){
int xp,yp,xv,yv;
scanf("%d%d%d%d",&xp,&yp,&xv,&yv);
if((xp<=xv&&yp<=yv)||max(xv,yv)>=xp+yp)
puts("Polycarp");
else puts("Vasiliy");
return 0;
}

【博弈论】51Nod 1534 棋子游戏的更多相关文章

  1. 51nod 1534 棋子游戏

    1534 棋子游戏 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 http://www.51nod.com/onlineJudg ...

  2. 51Nod 1534 棋子游戏 题解

    题目 波雷卡普和瓦西里喜欢简单的逻辑游戏.今天他们玩了一个游戏,这个游戏在一个很大的棋盘上进行,他们每个人有一个棋子.他们轮流移动自己的棋子,波雷卡普先开始.每一步移动中,波雷卡普可以将他的棋子从(x ...

  3. 51nod 1459 迷宫游戏(dij)

    题目链接:51nod 1459 迷宫游戏 dij裸题. #include<cstdio> #include<cstring> #include<algorithm> ...

  4. 棋子游戏 51Nod - 1534 思维题

    题目描述 波雷卡普和瓦西里喜欢简单的逻辑游戏.今天他们玩了一个游戏,这个游戏在一个很大的棋盘上进行,他们每个人有一个棋子.他们轮流移动自己的棋子,波雷卡普先开始.每一步移动中,波雷卡普可以将他的棋子从 ...

  5. (博弈论)51NOD 1069 Nim游戏

    有N堆石子.A B两个人轮流拿,A先拿.每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出N及每堆石子的数量,问最后 ...

  6. 2018.09.16 loj#10243. 移棋子游戏(博弈论)

    传送门 题目中已经给好了sg图,直接在上面跑出sg函数即可. 最后看给定点的sg值异或和是否等于0就判好了. 代码: #include<bits/stdc++.h> #define N 2 ...

  7. 51Nod 1067 Bash游戏 V2 | 博弈论 Bash

    n的数据范围非常大,所以不能用标准SG函数 找规律 #include "iostream" #include "cstdio" using namespace ...

  8. (博弈论)51NOD 1066 Bash游戏

    有一堆石子共有N个.A B两个人轮流拿,A先拿.每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出N和K,问最后谁能赢得比赛. 例如N = 3 ...

  9. 博弈论入门之nim游戏

    更好的阅读体验点这里 nim游戏 nim游戏 有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有\(n\)堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿),没法拿的人失败.问谁会胜利 ni ...

随机推荐

  1. 逐浪CMS最新V8.1.6 Beta版安装部署操作

    首先要获得内部最新版本的CMS,官网有公开发布版本,但不属于内部最新的,内部最新的CMS系统是不断的有功能的迭代更新. 操作系统建议是win10.1.windows server2012\2016\2 ...

  2. Proxy使用详解

    文档:Proxy 基本使用就不赘述,看文档即可 通用 1.Proxy可以包装任何形式的对象:包括原生数组,函数,甚至另一个代理 2.代理实例中没有指定的handler,实际就是操作原对象target: ...

  3. netty全局分析1

    这个系列都是别人的分析文 https://www.jianshu.com/p/ac7fb5c2640f 一丶 Netty基础入门 Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.U ...

  4. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...

  5. 为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?

    GitHub 17k Star 的Java工程师成神之路,不来了解一下吗! GitHub 17k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 17k Star 的Java工 ...

  6. 缓动公式整理(附:C#实现及WPF原版对比)

    前言 缓动在动画效果中应用非常广泛,在合适的时候使用一些缓动效果会使得效果更加符合人的直观感受,简单来说,会显得更加自然. WPF提供了11种缓动效果,涵盖了大部分的使用场景.不过如果需要在非WPF下 ...

  7. Redis散列(Hash)的相关命令

    散列 就像一个减配的Redis 内部及其类似Java的Map 内容就是key:value结构 hash类型在面向对象编程的运用中及其适合,因为它可以直接保存编程语言中的实体类关系 增 hset hse ...

  8. 获取NX一组属性

    NX中的属性是可以分组的,有时我们想获取某一个组下的所有属性,但是NX封装的接口不够好用,因此在此基础上,我封装了一个,供大家参考: 1 //属性值是字符串类型,obj对象tag,category组名 ...

  9. 使用IDEA远程调试SpringBoot程序

    远程调试就是服务端程序运行在一台远程服务器上,我们在本地服务端的代码中设置断点(本地的代码必须与远端一致),进行调试.每当有请求到达远程服务器时能够在本地知道远端程序的运行情况. 1.点击Run 选择 ...

  10. Kubernetes K8S之存储Secret详解

    K8S之存储Secret概述与类型说明,并详解常用Secret示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 ...