#P15564. [CCPC 2025 哈尔滨站] 连通的正三角形

[CCPC 2025 哈尔滨站] 连通的正三角形

题目描述

A 镇上有 (n+1)(n+2)2\frac{(n+1)(n+2)}{2} 个路口,这些路口由 3n3n 条路径连接,构成了一个边长有 nn 条道路的正三角形。n=3n=3 的情况如下图所示:

:::align{center} :::

这 3n3n 条路径可以分成左斜,水平和右斜三个方位,每个方位各包含 nn 条路径。每个方位的第 ii 条路径由 ii 条道路组成。

例如在 n=3n=3 时:

  • 左斜的路径从道路数量由少至多分别为 (6↔9)(6\leftrightarrow9), (3↔5↔8)(3\leftrightarrow5\leftrightarrow8), $(1\leftrightarrow2\leftrightarrow4\leftrightarrow7)$。
  • 水平的路径从道路数量由少至多分别为 (2↔3)(2\leftrightarrow3), (4↔5↔6)(4\leftrightarrow5\leftrightarrow6), $(7\leftrightarrow8\leftrightarrow9\leftrightarrow10)$。
  • 右斜的路径从道路数量由少至多分别为 (4↔8)(4\leftrightarrow8), (2↔5↔9)(2\leftrightarrow5\leftrightarrow9), $(1\leftrightarrow3\leftrightarrow6\leftrightarrow10)$。

我们称三个不同的路口 (u,v,w)(u,v,w) 是一个长度为正整数 ll 的“正三角形”路口,当且仅当我们可以在任意重排 u,v,wu,v,w 三个点的顺序后满足:

  • 从 uu 出发经过 ll 条左斜的道路到达 vv;
  • 从 vv 出发经过 ll 条水平的道路到达 ww;
  • 从 ww 出发经过 ll 条右斜的道路到达 uu。

或者:

  • 从 uu 出发经过 ll 条右斜的道路到达 vv;
  • 从 vv 出发经过 ll 条水平的道路到达 ww;
  • 从 ww 出发经过 ll 条左斜的道路到达 uu。

例如上图中 (2,4,5)(2,4,5),(2,3,5)(2,3,5) 是“正三角形”路口,而 (2,3,4)(2,3,4) 不是。

A 镇为了处理交通过于拥堵,因此决定给每条道路定向。在定向之后,每条道路存在唯一固定的方向,且每条路径上的道路方向相同。

如下图是一种可能的定向情况(对应着样例 11 的第三组测试数据):

:::align{center} :::

称图中的三个不同的路口 (u,v,w)(u,v,w) 为“连通的正三角形”路口,当且仅当它们在图中构成了一个长度为正整数 ll 的“正三角形”路口,且它们可以通过构成该“正三角形”路口的 3l3l 条道路相互到达。例如在上图中:

  • (2,4,5)(2, 4, 5) 是一个“连通的正三角形”路口。因为它们不仅是“正三角形”路口,且只通过该“正三角形”路口的道路 (2→4,4→5,5→2)(2 \rightarrow 4,4 \rightarrow 5, 5 \rightarrow 2) 相互到达。
  • (2,3,4)(2, 3, 4) 不是一个“连通的正三角形”路口。因为它们不是一个“正三角形”路口。
  • (2,3,5)(2, 3, 5) 不是一个“连通的正三角形”路口。因为它们虽然是“正三角形”路口,但不能通过该“正三角形”路口的道路(5→3,3→2,2←5)(5 \rightarrow 3, 3 \rightarrow 2, 2 \leftarrow 5) 相互到达。

现在告知所有有向路径的方向告诉你,询问这个图中到底有多少个“连通正三角形路口”。

输入格式

本题包含多组测试数据。输入第一行输入一个整数 TT (1≤T≤1051 \le T \le 10^5),表示测试数据组数。

接下来依次输入每组测试数据,对于每组测试数据:

第一行包含一个整数 nn (1≤n≤1051 \le n \le 10^5),表示正三角形的长度。

第二行包含一个长度为 nn 的字符串 s1s1,其中 s1i∈{0, 1}s1_i \in \{\text{0, 1}\},其中若 s1i=0s1_i=\text{0} 则表示由 ii 条道路构成的左斜路径的方向是右上向左下,反之亦然。

第三行包含一个长度为 nn 的字符串 s2s2,其中 s2i∈{0, 1}s2_i \in \{\text{0, 1}\},其中若 s2i=0s2_i=\text{0} 则表示由 ii 条道路构成的水平路径的方向是左向右,反之亦然。

第四行包含一个长度为 nn 的字符串 s3s3,其中 s3i∈{0, 1}s3_i \in \{\text{0, 1}\},其中若 s3i=0s3_i=\text{0} 则表示由 ii 条道路构成的右斜路径的方向是右下向左上,反之亦然。

保证所有数据的 nn 之和不超过 10510^5。

输出格式

对于每组数据,输出一个整数,表示“连通正三角形路口”的数量。

3
1
0
0
0
1
0
0
1
3
010
100
001
1
0
4
1
4
0011
1100
0011
6

提示

样例一中,第一组测试数据的图形:

:::align{center} :::

样例一中,第二组测试数据的图形:

:::align{center} :::

样例一中,第三组测试数据的“连通正三角形路口”有:

  • (2,4,5)(2, 4, 5);
  • (4,7,8)(4, 7, 8);
  • (5,6,9)(5, 6, 9);
  • (2,7,9)(2, 7, 9)。