「Daily OI Round 3」War

Luogu
IDLGP10130
Time1000ms
Memory512MB
DifficultyP6
线段树树状数组洛谷原创O2优化
有 $n$ 条船,船编号为 $1$ 至 $n$。每条船上有 $m$ 个士兵,士兵编号为 $1$ 至 $m$。 开始时,有若干组船由铁索相连。具体的关系给出如下: 给出 $s$ 组关系,形如 $l_1,r_1,l_2,r_2$,表示 $\forall k \in [0,r_1-l_1]$,第 $l_1+k$ 条船与第 $l_2+k$ 条船相连,保证 $r_1-l_1+1=r_2-l_2+1$ 且 $l_1 < l_2$。 保证 $\forall p \in [1,n]$,最多存在一组关系使得 $l_2 \le p \le r_2$。 然后有 $q$ 个操作,操作如下(操作按照时间先后顺序编号为 $1 \sim q$): 操作 $1$:向编号为 $p$ 的船的 $[L,R]$ 区间的士兵发射一支火箭。这样操作之后,这个区间的所有士兵都会着火。由于铁锁连环的缘故,所有与 $p$ 直接相连或间接相连的船的 $[L,R]$ 区间的士兵都会着火。注意,士兵可能着火多次。 操作 $2$:撤回编号为 $p$ 的操作,保证这个操作必定是操作 $1$。**保证不会多次撤回同一个操作,并且以后的询问都不考虑已经撤销的操作所带来的影响。** 操作 $3$:询问船 $p$ 上区间为 $[L,R]$ 的士兵是否全部着火。如果全部着火请输出 `Yes`,否则输出 `No`。 ## Input 第一行四个整数分别是 $n,m,s,q$,含义如题所示。 接下来 $s$ 行,每行四个整数,表示一个铁索关系。 接下来 $q$ 行,表示操作。 每行第一个整数 $op$ 表示操作种类。 - 若 $op=1$,你需要输入三个整数 $p,L,R$,并按照题目要求执行操作 $1$。 - 若 $op=2$,你需要输入一个整数 $p$,并按照题目要求执行操作 $2$。 - 若 $op=3$,你需要输入三个整数 $p,L,R$,并按照题目要求执行操作 $3$。 ## Output 若干行,表示每个 $3$ 操作的答案。 **温馨提示:全部输出 `No` 或者 `Yes` 会得到 $0\text{ pts}$ 的高分。** [samples] ## Background 《赤壁之战》是一款开放世界冒险游戏,这意味着从你踏入提瓦特的第一刻起,只要合理规划自己的体力,不论翻山越岭、还是横渡江河,总有办法见到新的风景。 ## Note #### 【样例解释 #1】 首先给出了两条关系式,第一条表示了 $1$ 与 $2$,$2$ 与 $3$,$3$ 与 $4$,$4$ 与 $5$,$5$ 与 $6$ 的船是相连的。第二条表示了 $7$ 与 $8$,$8$ 与 $9$,$9$ 与 $10$ 的船是相连的。 第一个操作向第 $4$ 条船的 $1$ 到 $5$ 号士兵发射火箭,因为 $1$ 到 $6$ 号船是相连的,所以 $1$ 到 $6$ 号船上的 $1$ 到 $5$ 号士兵都着火了。 第二个操作询问第一条船的 $2$ 到 $3$ 号是否着火。显然着火了,所以输出 `Yes`。 第三个操作撤回了第一个操作,所以所有士兵操作后都没有着火。 第四个操作询问第一条船的 $2$ 到 $3$ 号是否着火。显然没有着,所以输出 `No`。 第五个操作将十号船的 $[2,7]$ 士兵着火,第六个操作将九号船的 $[3,6]$ 着火。然后第七个操作撤回了第六个操作。注意:目前,第七到十号船的 $[2,7]$ 的士兵是着火的。 第八号操作将七号船的 $[8,13]$ 着火,第九个操作询问是否 $[2,12]$ 全部着火。显然此时已经全部着火了。 #### 【数据范围】 对于全部数据保证:$1 \le n\leq 10^9$,$1 \le m\leq 5\times 10^5$,$0 \le q\leq 10^5$,$0 \le s\leq 200$。
Samples
Input #1
10 20 2 9
1 5 2 6
7 9 8 10
1 4 1 5
3 6 2 3
2 1
3 6 2 3
1 10 2 7
1 9 3 6
2 6
1 7 8 13
3 8 2 12
Output #1
Yes
No
Yes
Input #2
10 10 2 10
1 1 2 2
1 1 8 8
1 2 1 8
1 6 7 8
1 8 7 8
1 9 6 7
3 8 3 3
2 4
1 5 7 8
3 3 3 3
3 6 3 3
2 3
Output #2
Yes
No
No
API Response (JSON)
{
  "problem": {
    "name": "「Daily OI Round 3」War",
    "description": {
      "content": "有 $n$ 条船,船编号为 $1$ 至 $n$。每条船上有 $m$ 个士兵,士兵编号为 $1$ 至 $m$。 开始时,有若干组船由铁索相连。具体的关系给出如下: 给出 $s$ 组关系,形如 $l_1,r_1,l_2,r_2$,表示 $\\forall k \\in [0,r_1-l_1]$,第 $l_1+k$ 条船与第 $l_2+k$ 条船相连,保证 $r_1-l_1+1=r_2-l_2+1$ 且",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10130"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "有 $n$ 条船,船编号为 $1$ 至 $n$。每条船上有 $m$ 个士兵,士兵编号为 $1$ 至 $m$。\n\n开始时,有若干组船由铁索相连。具体的关系给出如下:\n\n给出 $s$ 组关系,形如 $l_1,r_1,l_2,r_2$,表示 $\\forall k \\in [0,r_1-l_1]$,第 $l_1+k$ 条船与第 $l_2+k$ 条船相连,保证 $r_1-l_1+1=r_2-l_2+1$ 且...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments