乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT (Basic Level) Practice 1090 危险品装箱
问题分析
- 题设给定一组不相容的数值对, 然后给定多组数值, 要求检查每组数值中是否存在不相容的数值对。
- 所以本题的核心是数据的存储, 然后循环进行数据查询和比对。
- 如果使用的编程语言有哈希表和集合的数据结构, 可以直接将编号作为哈希表的键, 使用集合作为值来存储与其不相容的数值。
- C语言中, 需要用数组存储, 然后手动遍历数据来实现"检查元素是否在集合中"。
完整描述步骤
- 获取输入: 不相容的数值对数, 需要检查的数组数量
- 初始化统计器:
- 与其不相同的数值 = {}
- 获取输入: 每一对不相同的数值:
- 将 数值2 放入 与其不相同的数值[数值1] 中
- 将 数值1 放入 与其不相同的数值[数值2] 中
- 对于每一个需要检查的数组:
- 获取输入: 各个数值
- 对于每一个数值:
- 检查其他数值是否出现在该数值的不相同数值集合中
- 如果有:
- 输出"No"
- 直接进入下一个数组的检查
- 如果没有:
- 输出"Yes"
- 如果有:
- 检查其他数值是否出现在该数值的不相同数值集合中