首页 > 其他 > 详细

51nod1534 棋子游戏

时间:2020-05-30 18:37:58      阅读:37      评论:0      收藏:0      [点我收藏+]

技术分享图片

思路分析:我们先考虑,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\n");
23         return 0;
24     }
25     else if(x>a||y>b){//Polycarp在Vasiliy内 
26         printf("Vasiliy\n");
27         return 0;
28     }
29     printf("Polycarp\n");
30     return 0;
31 }
View Code

 

51nod1534 棋子游戏

原文:https://www.cnblogs.com/li-jia-hao/p/12994067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!