题目是这样的:

FZU Problem 2230

象棋翻翻棋(暗棋)中双方在4*8的格子中交战,有时候最后会只剩下帅和将。根据暗棋的规则,棋子只能上下左右移动,且相同的级别下,主动移动到地方棋子方将吃掉对方的棋子。将和帅为同一级别。然而胜负在只剩下帅和将的时候已定。


Input

第一行T,表示T组数据。

每组数据共有四行字符串,每行字符串共八个字符

’#’表示空格

’*’表示红方帅

’.’表示黑方将

此时红方先走

每组输入之间没有空行。

Output

每组数据输出一行。若为红方赢输出Red win,否则输出 Black win

Sample Input

1
######.#
#####*##
########
########

Sample Output

Black win

刚开始看的时候可能有点蒙圈,别紧张,把棋子放在不同位置找规律,这道题的重点在于横纵下标的差。

经过尝试,可以得到,将和帅在同一斜线上时,总是黑胜(从图上也能看出点眉目);接下来看其余地方,这里用【x,xx】表示黑方老大的下标,用【y,yy】表示白方老大的下标,x0=abs(x-y),y0=abs(xx-yy),观察尝试可知:

1、x0%2=0&&y0%2==1 时,黑败

2、x0%2=1&&y0%2==0 时,黑败

3、x0%2=0&&y0%2==0 时,黑胜

4、x0%2=1&&y0%2==1 时,黑胜

如此令c=x0+y0,则c是偶数时,黑胜,反之黑败,道理明白了,下面是AC代码

1、用scanf版需要用两个getchar()来吸收回车

#include<cstdio>
#include<cstdlib>
int main()
{
int t,x,y,xx,yy;
char a[4][8];
scanf("%d",&t);
getchar();//吸收回车
while(t--){
for(int i=0;i<4;i++){
for(int j=0;j<8;j++){
scanf("%c",&a[i][j]);
if(a[i][j]=='.'){
x=i;
xx=j;
}
if(a[i][j]=='*'){
y=i;
yy=j;
}
}
getchar();//吸收回车
}
int c=abs(x-y)+abs(xx-yy);
if(c%2==0)
printf("Black win\n");
else printf("Red win\n");
}
return 0;
}

2、cin版不用

#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
int main()
{
int t,x,y,xx,yy;
char a[4][8];
scanf("%d",&t);
while(t--){
for(int i=0;i<4;i++){
for(int j=0;j<8;j++){
cin>>a[i][j];
if(a[i][j]=='.'){
x=i;
xx=j;
}
if(a[i][j]=='*'){
y=i;
yy=j;
}
}
}
int c=abs(x-y)+abs(xx-yy);
if(c%2==0)
printf("Black win\n");
else printf("Red win\n");
}
return 0;
}

翻翻棋(找规律问题)(FZU Problem 2230)的更多相关文章

  1. FZU OJ:2230 翻翻棋

    Problem 2230 翻翻棋 Accept: 872    Submit: 2132Time Limit: 1000 mSec    Memory Limit : 32768 KB  Proble ...

  2. HDU 4910 Problem about GCD 找规律+大素数判断+分解因子

    Problem about GCD Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. SGU 107 987654321 problem【找规律】

    题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=107 题意: 平方后几位为987654321的n位数有多少个 分析: 虽然说是水题 ...

  4. 数学--数论--HDU 1792 A New Change Problem (GCD+打表找规律)

    Problem Description Now given two kinds of coins A and B,which satisfy that GCD(A,B)=1.Here you can ...

  5. A Simple Problem with Integers 循环节 修改 平方 找规律 线段树

    A Simple Problem with Integers 这个题目首先要打表找规律,这个对2018取模最后都会进入一个循环节,这个循环节的打表要用到龟兔赛跑. 龟兔赛跑算法 floyed判环算法 ...

  6. 【找规律】CodeForce #258 Problem A——Game With Sticks

    来源:点击打开链接 非常easy.找规律. 每去掉一个点,点的总数量就减去n+m-1,然后看谁最先减到没有点可减.就能够了. #include <iostream> #include &l ...

  7. ACM_棋棋棋棋棋(规律题)

    棋棋棋棋棋 Time Limit: 2000/1000ms (Java/Others) Problem Description: 在遥远的K次元空间,一年一度的GDUFE-GAME又开始了.每年的GD ...

  8. hdu4952 Number Transformation (找规律)

    2014多校 第八题 1008 2014 Multi-University Training Contest 8 4952 Number Transformation Number Transform ...

  9. CF456B Fedya and Maths 找规律

    http://codeforces.com/contest/456/problem/B CF#260 div2 B Fedya and Maths Codeforces Round #260 B. F ...

随机推荐

  1. SQL注入的原理及分析

    注入攻击的本质:将用户输入的数据当做代码执行. 有2个限制条件: 1.用户能够控制输入. 2.原本程序要执行的代码,拼接了用户输入的数据后进行执行. 定义:用户输入的数据被当做SQL语句执行. 以下面 ...

  2. Django 利用第三方平台实现用户注册02

    前言: 上篇博客我们已经对设置了图形验证码,短信验证码对用户信息进行了一些简单的验证,本篇博客我们会将上篇的一些验证方法进行结合,来进一步完成我们的注册工作 1. 创建视图类 在user中的view创 ...

  3. PostgreSQL数据库-抽奖sql

    select * from users order by random();--会进行随机排序,每次运行都会返回不同的结果 select * from users order by random() ...

  4. 【转】Windows中使用TortoiseGit提交项目到GitLab配置

    转  原文地址 https://www.cnblogs.com/xiangwengao/p/4134492.html   下文来给各位介绍Windows中使用TortoiseGit提交项目到GitLa ...

  5. base64和blob

    base64是二进制数据的一个编码格式,就像utf8一样的东西,他跟json一样,也是前后端交互能够相互识别的数据,他更多的是用来传递文件数据,并且如果是图片的base64,可以用来压缩 获取base ...

  6. <深入理解redis>读书笔记

    chapter2 键管理与数据结构 对大多数redis解决方案而言,键的命名设计至关重要.对于管理来说,内存消耗和redis性能都与数据结构设计相关.所以对开发者而言,最好有数据结构的命名文档规范. ...

  7. python爬虫笔记01

    1.urllib库中request,parse的学习 1.1 简单的请求页面获取,并下载到本地 request的使用 from urllib import request # 获取此网页的demout ...

  8. Golang的运算符-位运算符

    Golang的运算符-位运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算符概述 常见的位逻辑运算符: &: 位与运算符,表示AND(表示所有条件都得匹配), ...

  9. RadioGroup的使用

    前言: 使用RadioGroup就可以在选择情况多的时候,简化代码 RadioGroup 使用互斥选择时,会使用RadioGroup标签下面RadioButton,如下面的代码:(这样写下来,男和女的 ...

  10. UVA - 1451 Average (斜率优化)

    题意:由01组成的长度为n的子串,AT由0表示,GC由1表示,求一段长度大于等于L且GC率最高的子串的起始终止坐标,若GC率相同,取长度较小,若长度相同,取起始坐标最小. 分析: 1.一个子串(i+1 ...