「ALFR Round 2」C 小 Y 的数

Luogu
IDLGP10587
Time700ms
Memory64MB
DifficultyP6
线段树O2优化
小 Y 非常喜欢 $42$ 这个数,于是他也喜欢以 $42$ 为初始数,然后往后面依次拼接 $4,2$ 的数,如 $42,424,4242,\cdots$。小 Y 给了你一个大小为 $n$ 的整数序列 $a$,小 Y 有 $m$ 次操作,操作有四种: - `1 l r x` 将 $l\sim r$ 中的数加上 $x$。 - `2 l r x` 将 $l\sim r$ 中的数乘上 $x$。 - `3 l r x` 将 $l\sim r$ 中的数修改为 $x$。 - `4 l r` 询问 $l\sim r$ 中有多少个小 Y 喜欢的数。 ## Input 第一行两个整数 $n,m$。 第二行 $n$ 个整数 $a_1,a_2,a_3\cdots a_n$。 接下来 $m$ 行,每行 $3$ 或 $4$ 个整数描述一次操作。 ## Output 每行一个操作 $4$ 的答案。 [samples] ## Note ### 样例解释 第 $1$ 次操作为询问区间 $1\sim8$ 中有多少个小 Y 喜欢的数,共 $1$ 个,为 $a_2$。 第 $2$ 次操作为将区间 $1\sim8$ 中的数加上 $377$,数列 $a$ 变为 $418,419,420,421,422,423,424,424$。 第 $3$ 次操作为询问区间 $1\sim8$ 中有多少个小 Y 喜欢的数,共 $2$ 个,为 $a_7,a_8$。 第 $4$ 次操作为将区间 $1\sim1$ 中的数乘上 $100$,数列 $a$ 变为 $41800,419,420,421,422,423,424,424$。 第 $5$ 次操作为将区间 $1\sim8$ 中的数加上 $624$,数列 $a$ 变为 $42424,1043,1044,1045,1046,1047,1048,1048$。 第 $6$ 次操作为询问区间 $1\sim7$ 中有多少个小 Y 喜欢的数,共 $1$ 个,为 $a_1$。 第 $7$ 次操作为将区间 $1\sim8$ 中的数修改为 $424242$,数列 $a$ 变为 $424242,424242,424242,424242,424242,424242,424242,424242$。 第 $8$ 次操作为询问区间 $1\sim5$ 中有多少个小 Y 喜欢的数,共 $5$ 个,为 $a_1,a_2,a_3,a_4,a_5$。 ### 数据范围 | 子任务 | 分值 | 限制 | | :----------: | :----------: | :----------: | | $0$ | $20$ | $n,m\le10^4$ | | $1$ | $80$ | - | 对于 $100\%$ 的数据,$1\le n,m,a_i,x\le5\times10^5$,$1\le l,r\le n$。 保证每次操作后 $1\le a_i\le5\times10^5$。
Samples
Input #1
8 8
41 42 43 44 45 46 47 47
4 1 8
1 1 8 377
4 1 8
2 1 1 100
1 1 8 624
4 1 7
3 1 8 424242
4 1 5
Output #1
1
2
1
5
API Response (JSON)
{
  "problem": {
    "name": "「ALFR Round 2」C 小 Y 的数",
    "description": {
      "content": "小 Y 非常喜欢 $42$ 这个数,于是他也喜欢以 $42$ 为初始数,然后往后面依次拼接 $4,2$ 的数,如 $42,424,4242,\\cdots$。小 Y 给了你一个大小为 $n$ 的整数序列 $a$,小 Y 有 $m$ 次操作,操作有四种: - `1 l r x` 将 $l\\sim r$ 中的数加上 $x$。 - `2 l r x` 将 $l\\sim r$ 中的数乘上 $x$。 -",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 700,
      "memory_limit": 65536
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10587"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "小 Y 非常喜欢 $42$ 这个数,于是他也喜欢以 $42$ 为初始数,然后往后面依次拼接 $4,2$ 的数,如 $42,424,4242,\\cdots$。小 Y 给了你一个大小为 $n$ 的整数序列 $a$,小 Y 有 $m$ 次操作,操作有四种:\n\n- `1 l r x` 将 $l\\sim r$ 中的数加上 $x$。\n\n- `2 l r x` 将 $l\\sim r$ 中的数乘上 $x$。\n\n-...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments