问题 G: 跳马棋
题目描述
重新装修完后,丁总非常兴奋的领着快码佳编四兄弟姐妹去参观他们的游戏。
他们正在开发一款棋类游戏。这款游戏的规则如下:
在一个8*8的国际象棋棋盘上,一个玩家用白马,另外一个玩家用黑马。两个玩家交替下棋,白棋先下。在每次下的时候,马从现有位置随机走到一个有效位置。有效位置指的是棋盘里,在某个坐标轴移动2步另外一个坐标轴移动一步(即马的走法)。所有有效位置上能移到是等概率的。当一个棋手将马移到一个对方已经占有的格子上时,该棋手就赢了(俗称吃了对方)。
为了吸引玩家的兴趣,当马在2个给定的起始位置时,我们就要计算出赢的概率。如果双方赢的概率小于10-6时我们认为是平局。
输入
第一行输入2个整数A和B(1<=A,B<=8)代表白马开始的位置
第二行输入2个整数C和D(1<=C,D<=8)代表黑马开始的位置
输出
输出谁有更高概率赢,白赢输出“white”,黑输出“black”,如果是平局,则输出“draw”
样例输入
【样例输入1】
1 1
4 7
【样例输入2】
1 1
8 8
样例输出
【样例输出1】
white
【样例输出2】
black
题解:abs(x1-x2)+abs(y1-y2)是奇数,white赢 否则 black赢
证明不会.当时猜的,没想到就直接过了,hhhhhh
#include <bits/stdc++.h>
using namespace std;
int main(){
int x1,x2,y1,y2;
cin>>x1>>y1>>x2>>y2;
if((abs(x1-x2)+abs(y1-y2))%2==1) cout<<"white"<<endl;
else cout<<"black"<<endl;
}