翻翻棋(找规律问题)(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 ...
随机推荐
- Jquery实现横向tab切换
//需求:鼠标放在不同的导航栏上,下面显示的内容自动切换 //代码如下 <!DOCTYPE html> <html lang="en"> <head& ...
- 【转】WdatePicker日历控件使用方法
转 自: https://www.cnblogs.com/yuhanzhong/archive/2011/08/10/2133276.html WdatePicke官 ...
- PAT (Advanced Level) 1124~1127:1124模拟 1125优先队列 1126欧拉通路 1127中序后序求Z字形层序遍历
1124 Raffle for Weibo Followers(20 分) 题意:微博抽奖,有M个人,标号为1~M.从第S个人开始,每N个人可以获奖,但是已获奖的人不能重复获奖,需要跳过该人把机会留给 ...
- Windows 10工程版本泄露全新设计的操作中心圆角样式
早些时候微软错误地向Windows 10所有测试通道推送内部工程版本,该版本构建后尚未经过微软内部测试. 当然本身微软也没准备推送所以该版本里很多新功能未被关闭,而成功升级的用户则可以立即查看这些功能 ...
- C++面试常见问题——11重载、覆盖、隐藏
重载.覆盖.隐藏 重载 在同一类定义的成员函数中,参数不同的同名函数为重载关系.重载与虚函数无关. class A{ private: int x; public: void fun(int); // ...
- vue :src 不显示的解决方案
一定要将静态资源引入 [ require("@/assets/") ],绑定到 模型绑定的:src 数据中 动态的数据才能有效 <template> <d ...
- redis数据导入与导出以及配置使用
最近在研究redis 遇到redis requires Ruby version >= 2.2.2问题 解决办法是 先安装rvm,再把ruby版本提升至2.3.3 1.安装curl sudo y ...
- Redis详解(五)——主从复制
Redis详解(五)--主从复制 面临问题 机器故障.我们部署到一台 Redis 服务器,当发生机器故障时,需要迁移到另外一台服务器并且要保证数据是同步的.而数据是最重要的,如果你不在乎,基本上也就不 ...
- 065、Java面向对象之定义一个Book类,在主类中使用Book类
01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...
- navicat报错2005 - Unknown MySQL server host 'localhost' (0) 原因及解决方法
报错原因:没有连接互联网,用navicat连接本地mysql数据库,连接属性ip为localhost. 解决办法:将ip改为127.0.0.1即可.localhost是需要DNS解析后才会是127.0 ...