XTUOJ 1176 I Love Military Chess(模拟)



I Love Military Chess

Accepted : 45   Submit : 141
Time Limit : 1000 MS  
Memory Limit : 65536 KB

题目描述

陆军棋,又称陆战棋,简称军棋,是中国近代的一种两人棋类,设计根据军队中的军阶。每一方有25枚棋子,先夺得对方军旗者为胜。

棋子

每一方的棋子为25枚,包括:

军阶高低 棋子名称 各方枚数 特殊能力
1 司令 1
2 军长 1
3 师长 2
4 旅长 2
5 团长 2
6 营长 2
7 连长 3
8 排长 3
9 工兵 3 铁路上格数不限并可转弯,攻击胜过地雷
M 地雷 3 不能移动,胜过其他一切攻击棋子,工兵/炸弹除外
B 炸弹 2 遇到敌方棋子皆同归于尽,军旗也不例外
F 军旗 1 不能移动,被攻击则拥有者输掉游戏

胜负一览

司令 > 军长 > 师长 > 旅长 > 团长 > 营长 > 连长 > 排长 > 工兵

炸弹与任何棋子相遇时,双方都消失

工兵 > 地雷

地雷 > 除炸弹和工兵以外的任何子粒

题目要求

请你帮忙判断两个棋子相碰时,谁出局。

输入

多组测试数据,每组数据占一行

每行有两个数字或字母,之间用空格隔开,表示前者经过移动,与后者相碰。

1 表示司令
2 表示军长
3 表示师长
4 表示旅长
5 表示团长
6 表示营长
7 表示连长
8 表示排长
9 表示工兵
M 表示地雷
B 表示炸弹
F 表示军旗

输出

对于每组数据输出一行,为两人的官阶比较结果

1 表示前者官阶比后者大

-1 表示前者官阶比后者小

0 表示两人同归于尽

Error 表示出错(军旗和地雷不能主动移动)

Bingo 表示前者获得胜利(扛取对方军旗)

样例输入

1 2
B M
9 1
B F
1 F
M 1
F 1

样例输出

1
0
-1
Bingo
Bingo
Error
Error

第二次小组赛,这次选题是湘潭市13年的比赛题,这次我们也只做出了三个题,感觉两个还是模拟的题,一个题是穷举过的。。。哎。。

模拟感觉就是要模拟题目所给的题意,要先把题目看完,题意搞懂,感觉一般题目会很长,要认真分析一下。哪些状态比较特殊的我们就优先考虑,把题目给的情况都考虑到就差不多啦;

下面是ac的代码:

#include <stdio.h>
#include <cstring>
int main()
{
    char a,b;
    while(scanf("%c %c",&a,&b)!=EOF)
    {
        getchar();
      if(a==‘M‘ || a==‘F‘)//这就是出错的情况
       {
           printf("Error\n");
           continue;
       }
       else if(b==‘F‘)//获胜的情况
       {
           printf("Bingo\n");
           continue;
       }
       else if(a==‘B‘||b==‘B‘)//双方都消失的情况
        {
            printf("0\n");
            continue;
        }
       else if(b==‘M‘)//对是M(地雷)分情况考虑
       {
           if(a==‘9‘)
           {
               printf("1\n");
               continue;
           }
           else if(a==‘B‘)
           {
               printf("0\n");
               continue;
           }
           else
           {
               printf("-1\n");
               continue;
           }
       }
      else if(a>‘0‘&&a<‘10‘&&a<b)//比较大小,普通的情况
        {
            printf("1\n");
            continue;
        }
      else if(a>‘0‘&&a<‘10‘&&a>b)
        {
            printf("-1\n");
            continue;
        }
     else if(a==b)
        {
            printf("0\n");
            continue;
        }
    }
    return 0;
}

感觉这道题应该是去年的签到题,能做出来的还只是这些简单题啊,能把现在自己能做出来的题目都做出来就不错啦!!!加油!!

XTUOJ 1176 I Love Military Chess(模拟)

时间: 2024-10-06 06:16:00

XTUOJ 1176 I Love Military Chess(模拟)的相关文章

XTU1176:I Love Military Chess

述 陆军棋,又称陆战棋,简称军棋,是中国近代的一种两人棋类,设计根据军队中的军阶.每一方有25枚棋子,先夺得对方军旗者为胜. 棋子 每一方的棋子为25枚,包括: 军阶高低 棋子名称 各方枚数 特殊能力 1 司令 1 无 2 军长 1 无 3 师长 2 无 4 旅长 2 无 5 团长 2 无 6 营长 2 无 7 连长 3 无 8 排长 3 无 9 工兵 3 铁路上格数不限并可转弯,攻击胜过地雷 M 地雷 3 不能移动,胜过其他一切攻击棋子,工兵/炸弹除外 B 炸弹 2 遇到敌方棋子皆同归于尽,军

2013湘潭赛

XTU1168 Alice and Bob 因为数据只有10000范围,直接递推就可以了 #include<stdio.h> #include<string.h> #include<vector> #include<list> #include<deque> #include<queue> #include<stack> #include<map> #include<set> #include<

Codeforces Round #379 (Div. 2) D. Anton and Chess(模拟)

Anton likes to play chess. Also, he likes to do programming. That is why he decided to write the program that plays chess. However, he finds the game on 8 to 8 board to too simple, he uses an infinite one instead. The first task he faced is to check

hihoCoder 1392 War Chess 【模拟】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

#1392 : War Chess 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Rainbow loves to play kinds of War Chess games. There are many famous War Chess games such as "Biography of Cao Cao", "Anecdotes of Wagang Mountain", etc. In this problem, let's c

XTUOJ 1173 Five Tiger(模拟)

 Five Tiger Accepted : 34   Submit : 107 Time Limit : 1000 MS   Memory Limit : 65536 KB 题目描述 五虎棋是流传在东北民间的一种游戏,GG小的时候,经常被表哥虐得很惨. 由于各个地区的规则可能不大相同,并且GG的回忆不一定很准,所以,如果规则和你平常玩的的有冲突,请以这里为主. 棋盘是横五条,纵五条直线,形成25个交叉点,双方轮流把棋子放到交叉点上 (由于所需各自和棋子数目不多,才12+13,GG小的时候,

CodeForces - 7A Kalevitch and Chess(搜索?!模拟!)

Kalevitch and Chess Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status Description A famous Berland's painter Kalevitch likes to shock the public. One of his last obsessions is chess. For more than a thousand ye

20180520模拟赛T3——chess

[问题描述] 小美很喜欢下象棋. 而且她特别喜欢象棋中的马. 她觉得马的跳跃方式很独特.(以日字格的方式跳跃) 小芳给了小美一张很大的棋盘,这个棋盘是一个无穷的笛卡尔坐标. 一开始\(time=0\)的时候,马在原点.每个时刻马都跳一步. 可是这个坐标图有点残缺,有几个点是不能跳到的. 然后小美很好奇在\(time=[0,K]\)中,马能跳到多少个不同的格子. [输入格式] 从文件chess.in中读入数据. 第一行两个数K,n表示时间上限和残缺的点的数量. 接下来n行,每行一个坐标 xi,yi

Anton and Chess(模拟+思维)

http://codeforces.com/group/1EzrFFyOc0/contest/734/problem/D 题意:就是给你一个很大的棋盘,给你一个白棋的位置还有n个黑棋的位置,问你黑棋能否一步就吃掉白棋 给你如下规则 1.'B'只能对角线移动,而且不能越过其他黑棋. 2.'R'只能上下左右移动,而且不能越过其他黑棋. 3.'Q'既能对角线移动又能左右移动,但是不能越过其他黑棋. 这是看了别人的代码,很长,但只是粘贴复制,再改一下一下就行了: 1 #include<iostream>

[CSP-S模拟测试]:chess(数学)

题目描述 $dirty$在一个棋盘上放起了棋子. 棋盘规格为$n\times m$,他希望任意一个$n\times n$的区域内都有$C$个棋子.$dirty$很快就放置好了一个满足条件的棋盘方案,但是他认为这样过于简单了,他希望知道有多少个满足条件的方案. 输入格式 输入三个整数$n,m,C$,含义如题所述. 输出格式 输出一行一个整数,表示答案对$10^9+7$取模的结果. 样例 样例输入: 2 3 1 样例输出: 6 数据范围与提示 对于$20\%$的数据,$n,K\leqslant 4$