#P16653. [GKS 2018 #F] Common Anagrams

[GKS 2018 #F] Common Anagrams

题目描述

Ayla 有两个字符串 AABB,长度均为 LL,每个字符串均由大写英文字母组成。她想知道 AA 中有多少个不同的子串,可以作为 BB 的某个异序词子串出现。更正式地说,她想要统计不同的有序对 (i,j)(i, j) 的数量,其中 0ij<L0 \le i \le j < L,使得 AA 中从第 ii 个字符到第 jj 个字符(包含两端)构成的字符多重集与 BB 中某个长度为 (ji+1)(j - i + 1) 的连续子串的字符多重集相同。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含一个整数 LL,表示字符串的长度。随后两行各包含一个长度为 LL 的字符串,依次为字符串 AABB

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是 Ayla 所求的答案,如上所述。

6
3
ABB
BAB
3
BAB
ABB
6
CATYYY
XXXTAC
9
SUBXXXXXX
SUBBUSUSB
4
AAAA
AAAA
19
PLEASEHELPIMTRAPPED
INAKICKSTARTFACTORY
Case #1: 5
Case #2: 6
Case #3: 6
Case #4: 6
Case #5: 10
Case #6: 9

提示

在样例 #1 中,L=3L = 3A=ABBA = \text{ABB}B=BABB = \text{BAB}AA 共有 66 个子串:

  • A:子串 ABB 中(平凡地)是一个异序词。
  • B:子串 BBB 中(平凡地)是一个异序词。
  • B:子串 BBB 中(平凡地)是一个异序词。
  • AB:子串 ABBB 中(平凡地)是一个异序词。
  • BB:在 BB 中不存在对应的异序词子串。
  • ABB:子串 BABBB 中是一个异序词。

总共有 55 个子串在 BB 中存在对应的异序词子串,因此答案为 55

在样例 #2 中,注意它与样例 #1 相同,只是交换了 AABB。这导致答案变为 66

在样例 #3 中,注意 AA 中的子串 CATBB 中有对应的异序词子串 TAC。即使这两个子串在各自的字符串中位于不同位置,该子串仍然被计入。

在样例 #4 中,注意尽管 AA 中的子串 SUBBB 中有多个对应的异序词子串,但它只被计数一次。

在样例 #5 中,注意 AA 的每个子串都在 BB 中有对应的异序词子串,因此答案为 1010

限制条件

1T1001 \le T \le 100

1L501 \le L \le 50

小数据集(测试集 1 – 可见)

两个字符串 AABB 仅由字符 AB 组成。

大数据集(测试集 2 – 隐藏)

无额外限制。

翻译由 DeepSeek V4 Pro 完成