CF2008B Square or Not

题目描述

漂亮的二进制矩阵是指在四周边缘全为 1 而内部全为 0 的矩阵。 如下图所示为四个漂亮的二进制矩阵的示例。今天,Sakurako 玩了一种大小为 $r \times c$ 的漂亮二进制矩阵,并通过从第一行到第 $r$ 行依次记录每一行的内容,生成了一段二进制字符串 $s$。更具体地,第 $i$ 行第 $j$ 列的元素对应于字符串中的第 $((i-1) \cdot c + j)$ 个字符。 你需要检查,生成字符串 $s$ 的这个漂亮矩阵是否能成为一个方形矩阵。换句话说,你需要判断字符串 $s$ 是否可以由一个边长相等的漂亮二进制矩阵(即 $r = c$)形成。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示字符串的长度。 每个测试用例的第二行给出一个长度为 $n$ 的字符串 $s$。该字符串是由一个漂亮矩阵的行内容依次拼接而成。 保证所有测试用例中字符串长度 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对每个测试用例,如果原始矩阵可以是方形的,输出 "Yes";否则输出 "No"。 ## 示例与提示 在第二个测试用例中,字符串 `1111` 可以通过以下的矩阵得到: $$ \begin{array}{cccc} 1 & 1 & 1 & 1 \\ \end{array} $$ 在第三个测试用例中,字符串 `111101111` 可以通过以下的矩阵得到: $$ \begin{array}{ccc} 1 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 1 \\ \end{array} $$ 在第四个测试用例中,没有一个方形矩阵能够生成该字符串。 **本翻译由 AI 自动生成**

说明/提示

For the second test case, string 1111 can be obtained from the matrix: $ 1 $ $ 1 $ $ 1 $ $ 1 $ For the third test case, string 111101111 can be obtained from the matrix: $ 1 $ $ 1 $ $ 1 $ $ 1 $ $ 0 $ $ 1 $ $ 1 $ $ 1 $ $ 1 $ There is no square matrix in the fourth case, such that the string can be obtained from it.