[Ynoi2079] riapq

Luogu
IDLGP9987
Time4000ms
Memory2048MB
DifficultyP7
O2优化Ynoi2079
给出排列 $a_1,\dots,a_n$,你需要维护序列 $b_1,\dots,b_n$,初值为 $0$。 共 $m$ 次操作: 修改操作:给出 $l,r$,对每个 $(i,j)$ 满足 $l\le i\le j\le r,\;a_i\le a_j$,将 $b_j$ 增加 $1$; 查询操作:给出 $x$,查 $b_x$。 ## Input 第一行两个整数 $n,m$; 第二行 $n$ 个整数依次表示 $a_1,\dots,a_n$; 接下来 $m$ 行,每行 $1,l,r$ 或 $2,x$ 表示修改操作或查询操作。 输入的所有数值为整数。 ## Output 对每个查询操作,输出一行,包含一个整数,表示答案。 [samples] ## Note Idea:nzhtl1477,Solution:ccz181078,Code:ccz181078,Data:ccz181078 对于 $100\%$ 的数据,满足 $1\le n,m\le 2\times 10^5$; $1\le a_i\le n$,$a_i$ 互不相同; $1\le l\le r\le n$; $1\le x\le n$。
Samples
Input #1
8 10
5 4 8 7 1 6 3 2
1 2 5
2 8
1 2 8
1 7 8
2 4
2 1
2 6
2 4
1 8 8
2 4
Output #1
0
4
0
3
4
4
API Response (JSON)
{
  "problem": {
    "name": "[Ynoi2079] riapq",
    "description": {
      "content": "给出排列 $a_1,\\dots,a_n$,你需要维护序列 $b_1,\\dots,b_n$,初值为 $0$。 共 $m$ 次操作: 修改操作:给出 $l,r$,对每个 $(i,j)$ 满足 $l\\le i\\le j\\le r,\\;a_i\\le a_j$,将 $b_j$ 增加 $1$; 查询操作:给出 $x$,查 $b_x$。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 4000,
      "memory_limit": 2097152
    },
    "difficulty": {
      "LuoguStyle": "P7"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9987"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给出排列 $a_1,\\dots,a_n$,你需要维护序列 $b_1,\\dots,b_n$,初值为 $0$。\n\n共 $m$ 次操作:\n\n修改操作:给出 $l,r$,对每个 $(i,j)$ 满足 $l\\le i\\le j\\le r,\\;a_i\\le a_j$,将 $b_j$ 增加 $1$;\n\n查询操作:给出 $x$,查 $b_x$。\n\n## Input\n\n第一行两个整数 $n,m$;\n\n第二行 $n$...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments