[语言月赛 202402] 翻转和反转

Luogu
IDLGB3937
Time1000ms
Memory512MB
DifficultyP1
2024O2优化数组语言月赛
bj12z_jiasiyuan 有一个长度为 $n$ 的 $01$ 串 $s$,第 $i$ 位表示为 $s_i$。他要操作 $q$ 次,每次操作的内容如下: - $\textbf{1}$,将 $01$ 串 $s$ **翻转**,即将字符串中的字符顺序颠倒过来。例如 $s$ 串原来是 `10010`,翻转(颠倒)后变为 `01001`。 - $\textbf{2}$,将 $01$ 串 $s$ **反转**,即逐位取反。对于每个 $i$($1\leq i\leq n$),如果 $s_i = 0$,则令 $s_i$ 变成 $1$;否则令 $s_i$ 变成 $0$。 请你告诉 bj12z_jiasiyuan 操作 $q$ 次后的 $01$ 串 $s$。 ## Input 输入共三行。 第一行两个整数 $n,q$。 第二行一个长度为 $n$ 的 $01$ 串 $s$。 第三行一个长度为 $q$ 的字符串 $w$,其中 $w_i$ 表示第 $i$ 次操作的内容。如果 $w_i=1$,表示进行翻转操作;如果 $w_i=2$,表示进行反转操作。 ## Output 输出操作 $q$ 次后的 $01$ 串 $s$。 [samples] ## Background bj12z_jiasiyuan 喜欢翻转与反转。 ## Note ### 数据规模与约定 - 对于 $50\%$ 的数据,$1 \leq n \leq 10^3$,$1 \leq q \leq 10^3$。 - 对于 $100\%$ 的数据,$1 \leq n \leq 10^5$,$1 \leq q \leq 10^5$。
Samples
Input #1
7 10
1001100
1222121222
Output #1
1100110
Input #2
20 18
01100001111110010100
122121212112211221
Output #2
11010110000001111001
Input #3
18 18
101111010011101101
122222221112211211
Output #3
101111010011101101
API Response (JSON)
{
  "problem": {
    "name": "[语言月赛 202402] 翻转和反转",
    "description": {
      "content": "bj12z_jiasiyuan 有一个长度为 $n$ 的 $01$ 串 $s$,第 $i$ 位表示为 $s_i$。他要操作 $q$ 次,每次操作的内容如下: - $\\textbf{1}$,将 $01$ 串 $s$ **翻转**,即将字符串中的字符顺序颠倒过来。例如 $s$ 串原来是 `10010`,翻转(颠倒)后变为 `01001`。  - $\\textbf{2}$,将 $01$ 串 $s$ ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P1"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3937"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "bj12z_jiasiyuan 有一个长度为 $n$ 的 $01$ 串 $s$,第 $i$ 位表示为 $s_i$。他要操作 $q$ 次,每次操作的内容如下:\n\n- $\\textbf{1}$,将 $01$ 串 $s$ **翻转**,即将字符串中的字符顺序颠倒过来。例如 $s$ 串原来是 `10010`,翻转(颠倒)后变为 `01001`。 \n\n- $\\textbf{2}$,将 $01$ 串 $s$ ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments