AT_utpc2020_c Range Flip

题目描述

给定一个长度为 $N$ 的整数序列 $A_1,\ \ldots,\ A_N$,以及一个满足 $1 \leq D \leq N$ 的正整数 $D$。你可以重复进行如下操作: - 选择满足 $1 \leq L \leq R \leq N$ 且 $R-L+1=D$ 的整数 $L$、$R$,以及一个整数 $X$,将 $A_L,\ A_{L+1},\ \ldots,\ A_R$ 同时替换为 $(X-A_L),\ (X-A_{L+1}),\ \ldots,\ (X-A_R)$。 请判断是否可以通过有限次操作将 $A_1,\ A_2,\ \ldots,\ A_N$ 变为 $B_1,\ B_2,\ \ldots,\ B_N$。如果可以,请构造一种满足以下所有条件的操作方案: - 操作次数不超过 $3\times 10^5$ 次(也可以为 $0$ 次)。 - 每次操作中 $X$ 的绝对值不超过 $10^{13}$。 在本题的限制下,如果可以通过有限次操作使两序列一致,则一定存在满足上述条件的操作方案。

输入格式

输入通过标准输入给出,格式如下: > $N$ $D$ $A_1$ $A_2$ $\ldots$ $A_N$ $B_1$ $B_2$ $\ldots$ $B_N$

输出格式

如果可以使两序列一致,输出 `Yes`。否则输出 `No`。 若输出 `Yes`,第二行输出操作次数 $K\ (0 \leq K \leq 3\times 10^5)$,接下来 $K$ 行,每行输出一次操作,格式如下: > $L_1$ $R_1$ $X_1$ > $\vdots$ > $L_K$ $R_K$ $X_K$ 其中 $L_i,\ R_i, X_i$ 表示第 $i$ 次操作的 $L,R,X$。如果有多种满足条件的方案,输出任意一种即可。

说明/提示

### 数据范围 - 所有输入均为整数。 - $1 \leq D \leq N \leq 3\times 10^5$ - $|A_i| \leq 10^6$ - $|B_i| \leq 10^6$ ### 部分分 - 若能正确解决 $1 \leq N \leq 3\times 10^4$ 的数据,将获得 $50$ 分。 ### 样例解释 1 - 初始状态下,进行 $(L,R,X)=(1,2,5)$ 的操作后,$[1,2,3,4]\to[4,3,3,4]$。 - 接着进行 $(L,R,X)=(3,4,7)$ 的操作后,$[4,3,3,4]\to[4,3,4,3]$。 - 最后进行 $(L,R,X)=(2,3,7)$ 的操作后,$[4,3,4,3]\to[4,4,3,3]$,与 $B$ 完全一致。 ### 样例解释 2 无论如何操作,都无法使两序列一致。 由 ChatGPT 4.1 翻译