题目描述

投完篮后小 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常州市程序设计小能手题目-跳马相关推荐

  1. 2020常州市程序设计小能手真题及题解

    第一题 欢迎(welcome) 欢迎参加2020年常州市"程序设计小能手"比赛!小X想为你献上一张贺卡,不过-你得自己打印出来. 贺卡由三行组成.其中第二行为"*Welc ...

  2. 2021常州市程序设计小能手真题及题解

    第一题 书页(book) 样例输入 5 2 3 1 样例输出 R 分析:这道题就是一道if题,我是用三目运算符做的,如下 #include <bits/stdc++.h> using na ...

  3. *6-3 节约小能手

    节约小能手 题目描述 源代码 关于这题 题目描述 源代码 #include<iostream> #include<algorithm>using namespace std;c ...

  4. C语言程序设计课程设计题目[2023-02-11]

    C语言程序设计课程设计题目[2023-02-11] C语言程序设计课程设计题目 选题说明: 1.以下题目有部分可能功能相近,请同学们可从不同的角度来分析实现. 2.题目描述和要求仅供参考,同学们可以查 ...

  5. php解:2006 年百度之星程序设计大赛复赛题目 4 ----彩球游戏

    2006 年百度之星程序设计大赛复赛题目 4 彩球游戏 X 博士是一个研究儿童智力开发方法的科学家,他为幼儿教育领域做出了许多贡献.最近, X 博士正在研究一种适合儿童的游戏,用以辅助发展儿童的观察力 ...

  6. c语言 电报翻译的题目,C语言程序设计实训题目.doc

    C语言程序设计实训题目.doc C语言程序课程设计题目题目1年历显示功能要求(1) 输入一个年份,输出是在屏幕上显示该年的日历.假定输入的年份在1940-2040年之间.(2) 输入年月,输出该月的日 ...

  7. 2019燕山大学程序设计新生赛(二)

    2019燕山大学程序设计新生赛(二) 绝地武士 参考代码 织梦岛 参考代码 谍战风云 参考代码 绝地武士 天赋异禀的绝地武士安纳金·天行者受西斯大帝达斯·西迪厄斯蛊惑,堕入原力黑暗面,随后被派去绝地圣 ...

  8. 2006 年百度之星程序设计大赛初赛题目 6 百度语言翻译机

    百度语言翻译机 2006 年百度之星程序设计大赛初赛题目 6 百度语言翻译机 时限 1s 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语.他们在平时的交谈 ...

  9. c语言程序设计上机考试占多少分,C语言程序设计上机考试题目汇编.doc

    C语言程序设计上机考试题目汇编 C语言程序设计上机考试题目汇编 1.编写程序对ss字符中所有下标为奇数位置上的字母为大写 2.编写程序对指定字符在字符串a中出现的次数进行统计, 统计的数据存到b数组中 ...

最新文章

  1. 如何锁门_保安巡查时发现住户未锁门,应该怎么办?记住这九点!
  2. Deep Belief Network简介
  3. Github项目解析(九)--实现Activity跳转动画的五种方式
  4. Summer Tree 第六期完成
  5. 操作系统【四】分页存储管理
  6. mc服务器rank称号系统,绝地求生称号系统详解 称号系统奖励有哪些
  7. 基于Session的认证方式_实现授权功能_Spring Security OAuth2.0认证授权---springcloud工作笔记118
  8. Swift - 多线程实现方式(3) - Grand Central Dispatch(GCD)
  9. 无法处理文件 MainForm.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记...
  10. Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014
  11. 【Https(二】】实战 openssl 配置 tomcat
  12. 全网唯一, MATLAB绘制好看的弦图
  13. matlab车牌识别课程设计,matlab车牌识别课程设计报告
  14. 判断文件是否为图片格式
  15. 非语言沟通:超越字词之外的信息(非语言沟通的诸多作用和具体种类)
  16. 直通串口线和交叉串口线
  17. ASP+VML制作统计图的源程序
  18. 计算机组成原理实验五:CPU组成与机器指令执行实验
  19. 微信软文怎么写比较好?
  20. 微信小程序:常用功能6——点击图片,实现图片的预览功能wx.previewImage(Object object, boolean showmenu)

热门文章

  1. Linux sync 、fsync 和 fdatasync详解
  2. 一起瓜分20万奖金【第三届火焰杯软件测试大赛开始公开选拔】
  3. python中的xlrd模块_python:xlrd模块
  4. 傲骨外表下的时尚宠儿——山茶花
  5. linux 终端 mosh,使用Mosh来优化SSH连接
  6. maven中央仓库修改
  7. 四年级计算机下册word教学设计,四年级下册信息技术《我的地盘我做主》教学设计...
  8. 详解FIR滤波器和IIR滤波器的区别
  9. ACM经典书籍推荐 (算法)
  10. 小学生计算机课如何管教,少年巧编程| 如何给孩子选择编程课