PAT B1072 开学寄语(C++) 发表于 2018-11-28 | 分类于 PAT题解 | | 字数统计: 219 字 | 阅读时长 ≈ 1 分钟 PAT甲级目录 | PAT乙级目录 题目描述 B1072 开学寄语 解题思路查找。用一个 hash 数组存放违禁品名单,一边遍历学生物品名单一边查看该物品是否为违禁品,如是则按要求输出,如不是继续。 易错点 printf(" %04d", item); 输出的物品 id 格式 代码示例:1234567891011121314151617181920212223242526272829#include <iostream>#include <string>using namespace std;int main(){ int N, M, check[10010] = {0}, item, total_stu = 0, total_item = 0; cin >> N >> M; for(int i = 0; i < M; i++){ cin >> item; check[item] = 1; } for(int i = 0; i < N; i++){ string name; int k, cnt = 0; cin >> name >> k; for(int j = 0; j < k; j++){ cin >> item; if(check[item] == 1){ if(cnt == 0) cout << name << ":"; printf(" %04d", item); cnt++; } } if(cnt > 0) printf("\n"); total_stu = (cnt > 0) ? total_stu + 1 : total_stu; // 计数累加 total_item += cnt; } printf("%d %d\n", total_stu, total_item); return 0;} 本文作者: Philo 本文链接: http://lulalap.com/2018/11/28/PAT-B1072-cpp/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!