C++代码问题描述n 个人参加一场有且仅有 m 道判断题的考试。试卷的一份答案是指一个长度为 m 的字符串其中每个字符均为 Y 或 N 且第 i 个字符表示第 i 道题的答案。现在已知每个人的试卷的答案 以及考试全对的人数 k1 及全错的人数 k2 试找到该场考试一个可能的正确答案如果有多种可能那么就输出字典序最小的那一个如果不可能那么输出 −1。输入格式第一行一个正整数 T表示数据组数。接下来
思路:
题目要求找到一个可能的答案,因此需要对每一位进行判断,有三种情况:
- 该位必须为 Y,因为有至少 k1 个人全对了;
- 该位必须为 N,因为有至少 k2 个人全错了;
- 该位可以为 Y 或者 N。
对于前两种情况,只需要统计每一位 Y 和 N 的个数,如果满足条件则直接赋值;对于第三种情况,可以任意选择 Y 或者 N。
需要注意的是,不能出现既是 Y 又是 N 的情况,因此需要首先检查是否有解。
代码实现:
对于每一个字符,统计 Y 和 N 的个数,根据题目条件进行判断。如果出现矛盾,则输出 -1。
否则,根据情况将其赋值为 Y 或者 N,最后输出答案即可。
C++ 代码
原文地址: https://www.cveoy.top/t/topic/hpzl 著作权归作者所有。请勿转载和采集!