#51059. 命运
命运
暂无测试数据。
蒜头有一排长度为 $n$ 的棋堆,第 $i$ 个位置堆着 $a_i$ 个棋子。
蒜头不愿命运成为被摆弄的棋子,于是她可以更改区间 $a_l,\ldots ,a_r$ 内棋堆的堆放方案,有两种方式:
- 对于第 $i(1<i<n)$ 堆棋子,如果 $a_{i-1}+a_i+a_{i+1}$ 为偶数,且 $a_i$ 为奇数,可以交换 $a_{i-1},a_{i+1}$。
- 对于任意两堆棋子 $a_x,a_y$,如果 $a_x+a_y$ 为偶数,则可以将 $a_x,a_y$ 变成 $a_x+k,a_y-k$,满足 $k$ 是偶数且 $k\leq\min(a_x,a_y)$。
由于命运收到了若干变数的影响,初始序列 $\{a_n\}$ 可能会发生变化。
现在蒜头给定你 $m$ 个操作,操作有两种:
- 给定 $l,r,x$,询问子序列 $a_l,\ldots ,a_{l+x}$ 能否更改为子序列 $a_r,\ldots ,a_{r+x}$,输出
Yes
或No
。 - 给定 $x$,交换初始序列 $a_x,a_{x+1}$,满足 $x<n$。
输入格式
输入共 $m+2$ 行。
第 $1$ 行输入 $2$ 个正整数 $n,m$。
第 $2$ 行输入 $n$ 个非负整数 $a_i$。
接下来输入共 $m$ 行,每行先输入操作编号 $op$,$op=1$ 输入 $3$ 个正整数 $l,r,x$,否则输入 $x$。
输出格式
输出若干行,第 $i$ 行输出一个字符串 Yes
或 No
,代表第 $i$ 个操作 1 的答案。
数据范围
对于所有数据,$n,m,l,r,x\leq 10^5$,$a_i\leq 100$。数据点设置如下:
数据编号 | $n$ | $m$ | 特殊限制 |
---|---|---|---|
1,2,3 | $\leq 10$ | $\leq 10$ | $a_i\in \{0,1\}$ |
4,5 | $\leq 200$ | $\leq 50$ | 不存在操作 2 |
6,7 | $\leq 200$ | $\leq 200$ | 无 |
8,9,10 | $\leq 10^3$ | $\leq 10^3$ | 无 |
11,12,13 | $\leq 10^5$ | $\leq 10^3$ | 无 |
14,15 | $\leq 5\times 10^4$ | $\leq 5\times 10^4$ | 无 |
16,17 | $\leq 10^5$ | $\leq 10^5$ | $a_i\in \{0,1\}$ |
18,19 | $\leq 10^5$ | $\leq 10^5$ | 不存在操作 2 |
20,21 | $\leq 10^5$ | $\leq 10^5$ | 操作 2 都在操作 1 前 |
22,23,24,25 | $\leq 10^5$ | $\leq 10^5$ | 无 |
11 14
2 3 0 4 2 6 1 4 6 7 1
1 2 5 4
1 10 2 1
1 5 3 5
1 2 9 2
1 5 3 1
1 2 3 6
2 2
2 3
2 4
2 5
2 7
2 6
1 7 9 3
1 7 8 3
No
Yes
No
No
Yes
No
Yes
No