whenever

  • Home

  • Tags21

  • Categories6

  • Archives122

  • About

PAT乙级1072 || 开学寄语(详解,C/C++示例,测试点分析)

Posted on 2019-11-30 In PAT

开学寄语

题目描述

下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面、理发、整衣,然后思过、读书、锻炼、明智、开悟、精进。而后必成大器也!

本题要求你写个程序帮助这所学校的老师检查所有学生的物品,以助其成大器。

输入格式

输入第一行给出两个正整数 N(≤ 1000)和 M(≤ 6),分别是学生人数和需要被查缴的物品种类数。第二行给出 M 个需要被查缴的物品编号,其中编号为 4 位数字。随后 N 行,每行给出一位学生的姓名缩写(由 1-4 个大写英文字母组成)、个人物品数量 K(0 ≤ K ≤ 10)、以及 K 个物品的编号。

输出格式

顺次检查每个学生携带的物品,如果有需要被查缴的物品存在,则按以下格式输出该生的信息和其需要被查缴的物品的信息(注意行末不得有多余空格):

1
姓名缩写: 物品编号1 物品编号2 ……

最后一行输出存在问题的学生的总人数和被查缴物品的总数。

输入样例

1
2
3
4
5
6
4 2
2333 6666
CYLL 3 1234 2345 3456
U 4 9966 6666 8888 6666
GG 2 2333 7777
JJ 3 0012 6666 2333

输出样例

1
2
3
4
U: 6666 6666
GG: 2333
JJ: 6666 2333
3 5

问题解决

解题思想

将需要查缴的物品的编号用map类型进行标记,之后输入每个学生个人物品编号时判断是否需要查缴,需要查缴时进行相应的输出,并进行相关统计。

坑点提醒

输出物品编号时,注意要输出为4位,否则测试点2会错误。

代码示例(C/C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <map>
using namespace std;
int main() {
int N, M, count1 = 0, count2 = 0;
scanf("%d%d", &N, &M);
map <int, int> mp;
vector <int> vi;
while(M--) {
int tmp;
scanf("%d", &tmp);
mp[tmp] = 1;
}
while(N--) {
string str;
int K, flag = 0;
cin >> str;
scanf("%d", &K);
while(K--) {
int tmp;
scanf("%d", &tmp);
if(mp[tmp]) {
count2++; //被查缴物品的数量增1
if(flag == 0) {
cout << str << ":";
printf(" %04d", tmp); //注意输出为4位,不足4位前面补0
count1++; //存在问题的学生数量增1
flag = 1;
}
else {
printf(" %04d", tmp); //注意输出为4位,不足4位前面补0
}
}
}
if(flag == 1) {
printf("\n");
flag =0;
}
}
printf("%d %d", count1, count2);
return 0;
}

题目来源:PAT乙级1072
作者:CHEN, Yue
单位:浙江大学

稀罕作者
Mengzhao Wang WeChat Pay

WeChat Pay

Mengzhao Wang Alipay

Alipay

# C/C++ # PAT # 编程
PAT乙级1071 || 小赌怡情(详解,C/C++示例,测试点分析)
PAT乙级1073 || 多选题常见计分法(详解,C/C++示例,测试点分析)
  • Table of Contents
  • Overview
Mengzhao Wang

Mengzhao Wang

Try? All the way !
122 posts
6 categories
21 tags
  1. 1. 开学寄语
    1. 1.1. 题目描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 输入样例
    5. 1.5. 输出样例
    6. 1.6. 问题解决
      1. 1.6.1. 解题思想
      2. 1.6.2. 坑点提醒
      3. 1.6.3. 代码示例(C/C++)
© 2021 Mengzhao Wang