[语言月赛 202510] 数组嵌套

Luogu
IDLGB4423
Time1000ms
Memory512MB
DifficultyP2
2025字符串(入门)语言月赛
现有两个长为 $n$ 的数组 $a_1,a_2,\ldots,a_n$ 和 $b_1,b_2,\ldots,b_n$。保证 $1\le a_i,b_i\le n$。**注意下标从 $1$ 开始。** 在 C++ 中,我们分别使用表达式 `a[i]` 和 `b[i]` 来表示 $a_i$ 和 $b_i$,其中 $i$ 是一个数字,表示下标。 如果我们接着在表达式两侧嵌套 `a[...]` 和 `b[...]`,我们就实现了数组嵌套,产生形如 `a[b[a[a[15]]]]` 的表达式。 给出数组 $a,b$ 和一个数组嵌套形成的表达式,你需要计算这个表达式的值。 ## Input 输入共四行。 第一行有一个正整数 $n$,表示数组 $a,b$ 的长度。 第二行有 $n$ 个正整数 $a_1,\ldots,a_n$。 第三行有 $n$ 个正整数 $b_1,\ldots,b_n$。 最后一行有一个字符串,表示要计算的数组嵌套表达式。 ## Output 输出一行一个正整数,表示答案。 [samples] ## Note 【样例 1 解释】 `b[4]` 是 $3$,因此 `a[b[4]]` 等于 `a[3]` 即 $1$,进而得出 `a[a[b[4]]]` 等于 `a[1]`,故输出 $2$。 【数据范围】 用 $m$ 表示数组嵌套层数,例如样例 1 中 $m=3$。 对于全部数据,保证 $1\le n,m\le 10^5$(十万),且表达式中数组不会越界。 本题共有 $10$ 个测试点,部分测试点有特殊性质,具体如下($\checkmark$ 表示测试点具有该性质,空白表示不保证具有该性质): |测试点编号|$m\le$|特殊性质 A|特殊性质 B| |:-:|:-:|:-:|:-:| |$1$|$1$|$\checkmark$|$\checkmark$| |$2$|$1$||$\checkmark$| |$3,4$|$10$|$\checkmark$|$\checkmark$| |$5$|$10$||$\checkmark$| |$6,7$|$10$||| |$8$|$10^5$||$\checkmark$| |$9,10$|$10^5$||| - 特殊性质 A:表达式中的数字是一位数。 - 特殊性质 B:表达式中不会出现字符 `a`。
Samples
Input #1
4
2 4 1 3
1 2 4 3
a[a[b[4]]]
Output #1
2
Input #2
4
1 2 4 3
2 4 1 3
b[b[3]]
Output #2
2
Input #3
12
3 6 6 4 2 3 8 1 9 11 12 5
6 8 3 2 9 1 10 5 12 4 11 7
a[b[b[a[b[b[a[a[12]]]]]]]]
Output #3
2
API Response (JSON)
{
  "problem": {
    "name": "[语言月赛 202510] 数组嵌套",
    "description": {
      "content": "现有两个长为 $n$ 的数组 $a_1,a_2,\\ldots,a_n$ 和 $b_1,b_2,\\ldots,b_n$。保证 $1\\le a_i,b_i\\le n$。**注意下标从 $1$ 开始。** 在 C++ 中,我们分别使用表达式 `a[i]` 和 `b[i]` 来表示 $a_i$ 和 $b_i$,其中 $i$ 是一个数字,表示下标。 如果我们接着在表达式两侧嵌套 `a[...]` 和 `",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4423"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "现有两个长为 $n$ 的数组 $a_1,a_2,\\ldots,a_n$ 和 $b_1,b_2,\\ldots,b_n$。保证 $1\\le a_i,b_i\\le n$。**注意下标从 $1$ 开始。**\n\n在 C++ 中,我们分别使用表达式 `a[i]` 和 `b[i]` 来表示 $a_i$ 和 $b_i$,其中 $i$ 是一个数字,表示下标。\n\n如果我们接着在表达式两侧嵌套 `a[...]` 和 `...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments