AT_agc023_b.[AGC023B] Find Symmetries

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Snuke 有两块板子。每块板都是一个 nn 行 nn 列的网格。对于这两块板子,记第 ii 行 jj 列的格子为 (i,j)(i,j)。

第一块板子的每个格子上都写着一个小写字母:格子 (i,j)(i,j) 上的字母为 Si,jS_{i,j}。第二块板子上没有写任何东西。

Snuke 将以以下方法在第二块板子上写下字母:

首先,选择两个整数 AA,BB;然后在第二块板子的每个格子上写下一个字母。具体的说,第二块板子的格子 (i+A,j+B)(i+A,j+B) 将写上 Si,jS_{i,j}。这里第 n+kn+k 行即第 kk 行,第 n+kn+k 列即为第 kk 列。

此操作后,若对任意的 i,ji,j,第二块板的格子 (j,i)(j,i) 上的字母和格子 (i,j)(i,j) 上的字母相同,则称第二块板为“好板”。

请你求出有多少 A,BA,B 满足 0≤A,B<n0\le A,B<n,且经过上述操作后第二块板为“好板”。

输入格式

输入来自以下格式的标准输入:

nS1,1S1,2…S1,nS2,1S2,2…S2,n⋮Sn,1Sn,2…Sn,n\boxed{\begin{matrix}n\\ S_{1,1}S_{1,2}\dots S_{1,n}\\ S_{2,1}S_{2,2}\dots S_{2,n}\\ \vdots\\ S_{n,1}S_{n,2}\dots S_{n,n}\end{matrix}}

输出格式

输出一个数,表示有多少 A,BA,B 满足 0≤A,B<n0\le A,B<n,且经过上述操作后第二块板为“好板”。

输入输出样例

  • 输入#1

    2
    ab
    ca

    输出#1

    2
  • 输入#2

    4
    aaaa
    aaaa
    aaaa
    aaaa

    输出#2

    16
  • 输入#3

    5
    abcde
    fghij
    klmno
    pqrst
    uvwxy

    输出#3

    0

说明/提示

  • 1≤n≤3001\le n\le 300。
  • Si,jS_{i,j} 都是小写字母。

样例解释:

对于样例 1:对于所有可能的 AA 和 BB,二号板上的字母如下所示:

当且仅当 (A,B)=(0,1)(A,B)=(0,1) 或 (A,B)=(1,0)(A,B)=(1,0) 时满足第二块板是“好板”,因此答案是 22。

对于样例 2,所有被选中的 AA 和 BB 都会使第二块板成为“好板”。

对于样例 3,没有 AA 和 BB 可以使第二块板成为“好板”。

输入解题思路,AI测评打分。不知道怎么写?

首页