P17576 [JAG 2026 Summer Camp #3] Box Tower II
题目描述
有 $N$ 个大小相同的立方体箱子,编号为 $1,2,\ldots,N$。每个箱子的每个面都被涂成黑色或白色。
第 $i$ 个箱子六个面的颜色分别用 $u_i,d_i,f_i,b_i,l_i,r_i$ 表示,其对应关系如图 E-1 所示。这些字符均为 `B` 或 `W`,其中 `B` 表示黑色,`W` 表示白色。

*图 E-1:输入与箱子各个面的对应关系。*
给定 $Q$ 次询问。对于每个 $q$($1\le q\le Q$),第 $q$ 次询问给出两个整数 $s_q,t_q$。
你想使用编号为 $s_q,s_q+1,\ldots,t_q$ 的全部箱子,将每个箱子旋转后竖直堆叠成一座塔。确定每个箱子的朝向后,摆放所有箱子,使其顶面和底面均保持水平,且底面完全对齐。因此,塔的四个侧面中,每个侧面都恰好包含每个箱子的一个面。
如果塔的四个侧面均满足其中黑色面的数量等于白色面的数量,则称这座塔是**平衡的**。
对于每个 $q$($1\le q\le Q$),判断能否使用编号为 $s_q,s_q+1,\ldots,t_q$ 的全部箱子搭建一座平衡的塔。
输入格式
输入包含一组测试数据,格式如下。
```text
N Q
u_1d_1f_1b_1l_1r_1
u_2d_2f_2b_2l_2r_2
...
u_Nd_Nf_Nb_Nl_Nr_N
s_1 t_1
s_2 t_2
...
s_Q t_Q
```
第一行包含两个整数 $N,Q$($1\le N\le2\times10^5$,$1\le Q\le2\times10^5$),分别表示箱子的数量和询问次数。
对于每个 $i$($1\le i\le N$),接下来 $N$ 行中的第 $i$ 行依次包含六个字符 $u_i,d_i,f_i,b_i,l_i,r_i$,**字符之间没有空格**。每个字符均为 `B` 或 `W`,表示图 E-1 中第 $i$ 个箱子对应面的颜色。
对于每个 $q$($1\le q\le Q$),接下来 $Q$ 行中的第 $q$ 行包含两个整数 $s_q,t_q$($1\le s_q\le t_q\le N$),表示第 $q$ 次询问使用的箱子编号范围。
输出格式
输出 $Q$ 行。
对于每个 $q$($1\le q\le Q$),如果可以使用编号为 $s_q,s_q+1,\ldots,t_q$ 的全部箱子搭建一座平衡的塔,则在第 $q$ 行输出 `Yes`;否则输出 `No`。