2019常州市程序设计小能手题目-跳马
题目描述
投完篮后小 X 浑身酸爽,心情愉快地备课去了,第一次上课首先要教小朋友们各种棋子的走法,并且要设计练习帮助小朋友们巩固记忆,小 X 发现马的跳法将是第一节课的难点,首先马的走法很不规则, 它是先沿着直线走一格,然后再沿着斜线走一格,也就是俗称的“马走日”,但中国像棋与国际象棋有所不同,首先中国象棋是从一个交叉点上移动到另一个交叉点上,而国际象棋棋子则在方格中移动;其次,中国象棋的马还有“蹩马脚”的规则,即如果在马前行的道路上有一个棋子(该棋子可以是任意一方的)则称马被蹩住脚了,它就跳不到相应的位置上,这个蹩字读“别”,意思为“绊”。下图为马的走法规则:
“马走日”的行棋有条规定:马先沿直线走一格,然后再沿斜线走一格。马每次跳一个“日”字,就是从“日”字的一个角走到其对角,不管这个“日”字是立着还是横着,只要没有被蹩住脚,它都可以跳过去。
如图 1 所示,当马在棋盘中部的时候,如果没有障碍,最多能够看管住 8 个点,所以人们夸它是“八面威风”。如果跳到边线上,它的威力就小多了,如图 2 所示,我们看到红马在边线上,最多可以看管住 4 个点,减少了一半的管辖范围。如果跳到角上,则威力再减半!但是马有一个最大的弱点——害怕被“蹩马脚”,也叫“绊马脚”。一旦马脚被蹩,就寸步难行。怎样是“蹩马脚”呢?如果紧邻马行进方向的交叉点上有一个棋子(可以是任何一方棋子),马就不能跳过去,这就是“蹩马脚”。如下图中所示:
如果在交叉点 A 处有一枚棋子,则图中的马就跳不到 1 和 2 两个交叉点上了;同理如果在交叉点 B 处有一枚棋子,则图中的马就跳不到 3 和 4 两个交叉点上了,如果在交叉点 C 处有一枚棋子,则图中的马就跳不到 5 和 6 两个交叉点上了,如果在交叉点 D 处有一枚棋子,则图中的马就跳不到 7 和 8 两个交叉点上了。现在小 X 给你一个棋盘上的局面,此局面最多会有两个马,并且如果有两个马则它们一定是同一方的,另外还有许多别的棋子分布在棋盘上,这些棋子可能是己方的,也可能是对方的,小 X 要你指出有多少个对方的棋子会被马吃到,只要是在马一步能跳到的位置上有一个对方的棋子,则马就能吃到这个棋子。在象棋规则中任何时候任何棋子都不能吃己方的棋子!
输入:
输入数据第一行为一个正整数 n,n=1 或 2,表示棋盘上有 n 个马,这 n 个马属于同一方。接下来 n 行每行包含两个整数表示马的位置,如果有两个马,则它们的位置保证不相同。
接下来的第 n+2 行为一个整数 m,表示棋盘上有 m 个棋子,最后 m 行每行有 3 个整数,表示一个棋子的信息,前两个数为棋子的位置,第三个数表示该棋子与马的关系,0 表示它与马是同一方的,可以蹩马脚,但不可以被马吃;1 表示它与马不是同一方的,既可以蹩马脚,又可以被马吃。棋盘上的位置是这样表示的,我们把棋盘上的每条竖线从左往右用 0~8 编号,把棋盘上的每条横线从下往上用 0~9 编号,上图已将编号标在棋盘的下边和左边,图中的马的位置就是(4,6), ①号点的位置就是(3,8)。
输出:
输出数据仅有一行包含一个整数,表示马能够吃到的对方棋子的数量。如果一个棋子同 时被两个马吃到,这个棋子只能被统计一次!
样例
输入:
1
4 6
5
3 8 1
4 7 1
5 8 1
6 7 0
6 5 1
输出
1
提示:
样例解释
这匹马只能吃到(6,5)位置上的棋子。(3,8)和(5,8)被(4,7)蹩马脚了,(6,7)则是自己一方的棋子。
数据范围
70%的数据棋盘上只有一个马,且其中 30%的数据不存在“蹩马脚”的情况。
100%的数据棋盘上最多只有两个马,同一位置保证只有一个棋子,并且位置不会超出棋盘的范围。
这个题目该怎么解?
加微信交流
2019常州市程序设计小能手题目-跳马相关推荐
- 2020常州市程序设计小能手真题及题解
第一题 欢迎(welcome) 欢迎参加2020年常州市"程序设计小能手"比赛!小X想为你献上一张贺卡,不过-你得自己打印出来. 贺卡由三行组成.其中第二行为"*Welc ...
- 2021常州市程序设计小能手真题及题解
第一题 书页(book) 样例输入 5 2 3 1 样例输出 R 分析:这道题就是一道if题,我是用三目运算符做的,如下 #include <bits/stdc++.h> using na ...
- *6-3 节约小能手
节约小能手 题目描述 源代码 关于这题 题目描述 源代码 #include<iostream> #include<algorithm>using namespace std;c ...
- C语言程序设计课程设计题目[2023-02-11]
C语言程序设计课程设计题目[2023-02-11] C语言程序设计课程设计题目 选题说明: 1.以下题目有部分可能功能相近,请同学们可从不同的角度来分析实现. 2.题目描述和要求仅供参考,同学们可以查 ...
- php解:2006 年百度之星程序设计大赛复赛题目 4 ----彩球游戏
2006 年百度之星程序设计大赛复赛题目 4 彩球游戏 X 博士是一个研究儿童智力开发方法的科学家,他为幼儿教育领域做出了许多贡献.最近, X 博士正在研究一种适合儿童的游戏,用以辅助发展儿童的观察力 ...
- c语言 电报翻译的题目,C语言程序设计实训题目.doc
C语言程序设计实训题目.doc C语言程序课程设计题目题目1年历显示功能要求(1) 输入一个年份,输出是在屏幕上显示该年的日历.假定输入的年份在1940-2040年之间.(2) 输入年月,输出该月的日 ...
- 2019燕山大学程序设计新生赛(二)
2019燕山大学程序设计新生赛(二) 绝地武士 参考代码 织梦岛 参考代码 谍战风云 参考代码 绝地武士 天赋异禀的绝地武士安纳金·天行者受西斯大帝达斯·西迪厄斯蛊惑,堕入原力黑暗面,随后被派去绝地圣 ...
- 2006 年百度之星程序设计大赛初赛题目 6 百度语言翻译机
百度语言翻译机 2006 年百度之星程序设计大赛初赛题目 6 百度语言翻译机 时限 1s 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语.他们在平时的交谈 ...
- c语言程序设计上机考试占多少分,C语言程序设计上机考试题目汇编.doc
C语言程序设计上机考试题目汇编 C语言程序设计上机考试题目汇编 1.编写程序对ss字符中所有下标为奇数位置上的字母为大写 2.编写程序对指定字符在字符串a中出现的次数进行统计, 统计的数据存到b数组中 ...
最新文章
- 如何锁门_保安巡查时发现住户未锁门,应该怎么办?记住这九点!
- Deep Belief Network简介
- Github项目解析(九)--实现Activity跳转动画的五种方式
- Summer Tree 第六期完成
- 操作系统【四】分页存储管理
- mc服务器rank称号系统,绝地求生称号系统详解 称号系统奖励有哪些
- 基于Session的认证方式_实现授权功能_Spring Security OAuth2.0认证授权---springcloud工作笔记118
- Swift - 多线程实现方式(3) - Grand Central Dispatch(GCD)
- 无法处理文件 MainForm.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记...
- Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014
- 【Https(二】】实战 openssl 配置 tomcat
- 全网唯一, MATLAB绘制好看的弦图
- matlab车牌识别课程设计,matlab车牌识别课程设计报告
- 判断文件是否为图片格式
- 非语言沟通:超越字词之外的信息(非语言沟通的诸多作用和具体种类)
- 直通串口线和交叉串口线
- ASP+VML制作统计图的源程序
- 计算机组成原理实验五:CPU组成与机器指令执行实验
- 微信软文怎么写比较好?
- 微信小程序:常用功能6——点击图片,实现图片的预览功能wx.previewImage(Object object, boolean showmenu)
热门文章
- Linux sync 、fsync 和 fdatasync详解
- 一起瓜分20万奖金【第三届火焰杯软件测试大赛开始公开选拔】
- python中的xlrd模块_python:xlrd模块
- 傲骨外表下的时尚宠儿——山茶花
- linux 终端 mosh,使用Mosh来优化SSH连接
- maven中央仓库修改
- 四年级计算机下册word教学设计,四年级下册信息技术《我的地盘我做主》教学设计...
- 详解FIR滤波器和IIR滤波器的区别
- ACM经典书籍推荐 (算法)
- 小学生计算机课如何管教,少年巧编程| 如何给孩子选择编程课