翻翻棋(找规律问题)(FZU Problem 2230)
题目是这样的:
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)的更多相关文章
- FZU OJ:2230 翻翻棋
Problem 2230 翻翻棋 Accept: 872 Submit: 2132Time Limit: 1000 mSec Memory Limit : 32768 KB Proble ...
- HDU 4910 Problem about GCD 找规律+大素数判断+分解因子
Problem about GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- SGU 107 987654321 problem【找规律】
题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=107 题意: 平方后几位为987654321的n位数有多少个 分析: 虽然说是水题 ...
- 数学--数论--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 ...
- A Simple Problem with Integers 循环节 修改 平方 找规律 线段树
A Simple Problem with Integers 这个题目首先要打表找规律,这个对2018取模最后都会进入一个循环节,这个循环节的打表要用到龟兔赛跑. 龟兔赛跑算法 floyed判环算法 ...
- 【找规律】CodeForce #258 Problem A——Game With Sticks
来源:点击打开链接 非常easy.找规律. 每去掉一个点,点的总数量就减去n+m-1,然后看谁最先减到没有点可减.就能够了. #include <iostream> #include &l ...
- ACM_棋棋棋棋棋(规律题)
棋棋棋棋棋 Time Limit: 2000/1000ms (Java/Others) Problem Description: 在遥远的K次元空间,一年一度的GDUFE-GAME又开始了.每年的GD ...
- hdu4952 Number Transformation (找规律)
2014多校 第八题 1008 2014 Multi-University Training Contest 8 4952 Number Transformation Number Transform ...
- CF456B Fedya and Maths 找规律
http://codeforces.com/contest/456/problem/B CF#260 div2 B Fedya and Maths Codeforces Round #260 B. F ...
随机推荐
- SQL注入的原理及分析
注入攻击的本质:将用户输入的数据当做代码执行. 有2个限制条件: 1.用户能够控制输入. 2.原本程序要执行的代码,拼接了用户输入的数据后进行执行. 定义:用户输入的数据被当做SQL语句执行. 以下面 ...
- Django 利用第三方平台实现用户注册02
前言: 上篇博客我们已经对设置了图形验证码,短信验证码对用户信息进行了一些简单的验证,本篇博客我们会将上篇的一些验证方法进行结合,来进一步完成我们的注册工作 1. 创建视图类 在user中的view创 ...
- PostgreSQL数据库-抽奖sql
select * from users order by random();--会进行随机排序,每次运行都会返回不同的结果 select * from users order by random() ...
- 【转】Windows中使用TortoiseGit提交项目到GitLab配置
转 原文地址 https://www.cnblogs.com/xiangwengao/p/4134492.html 下文来给各位介绍Windows中使用TortoiseGit提交项目到GitLa ...
- base64和blob
base64是二进制数据的一个编码格式,就像utf8一样的东西,他跟json一样,也是前后端交互能够相互识别的数据,他更多的是用来传递文件数据,并且如果是图片的base64,可以用来压缩 获取base ...
- <深入理解redis>读书笔记
chapter2 键管理与数据结构 对大多数redis解决方案而言,键的命名设计至关重要.对于管理来说,内存消耗和redis性能都与数据结构设计相关.所以对开发者而言,最好有数据结构的命名文档规范. ...
- python爬虫笔记01
1.urllib库中request,parse的学习 1.1 简单的请求页面获取,并下载到本地 request的使用 from urllib import request # 获取此网页的demout ...
- Golang的运算符-位运算符
Golang的运算符-位运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算符概述 常见的位逻辑运算符: &: 位与运算符,表示AND(表示所有条件都得匹配), ...
- RadioGroup的使用
前言: 使用RadioGroup就可以在选择情况多的时候,简化代码 RadioGroup 使用互斥选择时,会使用RadioGroup标签下面RadioButton,如下面的代码:(这样写下来,男和女的 ...
- UVA - 1451 Average (斜率优化)
题意:由01组成的长度为n的子串,AT由0表示,GC由1表示,求一段长度大于等于L且GC率最高的子串的起始终止坐标,若GC率相同,取长度较小,若长度相同,取起始坐标最小. 分析: 1.一个子串(i+1 ...