B3966 [语言月赛 202404] 道法考试 题解
Maxmilite
·
·
题解
Source & Knowledge
2024 年 4 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
## 题目分析
本题实际上考察的是,判断一个一维数组中的所有元素是否完全在另一个一维数组中出现过。
注意到标准答案和作答中所有的整数均 $\leq 5 \times 10^5$,因此可以使用一个 $v$ 数组,$v_i$ 记录 $i$ 号元素是否在某道题的作答中出现过($1$ 代表出现过,$0$ 代表未出现)。
每次读入某道题目的 $l_i$ 个整数后,先将其存入 $v$ 数组。之后遍历标准答案中相应的 $m$ 个整数,判断每个整数 $i$ 对应的 $v_i$ 是否为 $1$ 即可。
```cpp
int v[5005];
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= 5000; ++j) {
v[j] = 0;
}
int li;
cin >> li;
for (int j = 1; j <= li; ++j) {
int x;
cin >> x;
v[x] = 1;
}
int wrong_answer = 0;
for (int i = 1; i <= m; ++i) {
if (!v[a[i][j]]) { // a 数组是标准答案
// 不加分
wrong_answer = 1;
break;
}
}
if (!wrong_answer) {
// 加分
...
}
}
```
## 视频讲解
