1 条题解

  • 0
    @ 2025-8-24 21:16:15

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Maxmilite
    **

    搬运于2025-08-24 21:16:14,当前版本为作者最后更新于2024-04-24 09:32:22,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

    2024 年 4 月语言月赛,由洛谷网校入门计划/基础计划提供。

    题目大意

    nn 道题目,每道题目有标准答案(mm 个整数)和你的作答(lil_i 个整数)。判断你的作答是否完全囊括了所有的标准答案。

    题目分析

    本题实际上考察的是,判断一个一维数组中的所有元素是否完全在另一个一维数组中出现过。

    注意到标准答案和作答中所有的整数均 5×105\leq 5 \times 10^5,因此可以使用一个 vv 数组,viv_i 记录 ii 号元素是否在某道题的作答中出现过(11 代表出现过,00 代表未出现)。

    每次读入某道题目的 lil_i 个整数后,先将其存入 vv 数组。之后遍历标准答案中相应的 mm 个整数,判断每个整数 ii 对应的 viv_i 是否为 11 即可。

    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) {
        // 加分
        ...
      }
    }
    

    视频讲解

    • 1

    信息

    ID
    9980
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者