解题思路
本题要求判断一组卡牌盒是否同时满足三个条件,并在满足条件时输出所有卡牌盒共有的卡牌编号(按编号升序)。我们需要逐一对每组测试数据进行判定:
- 条件 3(数量相等):读入每个卡牌盒的卡牌数量
t,如果存在不相等的情况,直接输出 NO。
- 条件 1(盒内无重复):对每个卡牌盒的卡牌列表,用集合去重后比较长度。若任何盒子内出现重复卡牌,也是直接输出
NO。
- 条件 2(卡牌的分布):统计每种卡牌出现在哪些卡牌盒中(用集合记录卡牌盒编号,由于条件 1 保证同一盒内不重复,所以直接用集合大小表示出现次数即可)。对于一个卡牌,若它出现的卡牌盒数既不是 1 也不是
n,则不满足条件,输出 NO。
- 在统计条件 2 的同时,收集那些出现在所有
n 个卡牌盒中的卡牌(即出现次数恰好为 n)。如果全部条件通过,将这部分卡牌从小到大排序输出;若没有任何共有卡牌,仅输出 Yes。