[HUSTFC 2023] 基因编辑

Luogu
IDLGP9778
Time1500ms
Memory512MB
DifficultyP5
2023O2优化高校校赛
绮月有 $n$ 条 DNA 碱基序列 $S_1,S_2,\dots S_n$,每条碱基序列可以用一个仅包含 `A`、`C`、`G` 和 `T` 这四种大写字母的字符串表示。 绮月可以拼合两条 DNA 碱基序列,具体操作为将前一条碱基序列的一个前缀(可以为空)和后一条的一个后缀(可以为空)结合,如 `ACGC` 与 `CTAT` 拼合就有可能得到 `ACGCTAT`、`ACGCCTAT`、`ACAT` 或 `T`。 绮月据此定义,一个三元组 $(i,j,k)$ 是好的,当且仅当 $1\le i,j,k \le n$,$i\ne k$,$j \ne k$,且 $S_i$ 与 $S_j$ 拼合可以得到 $S_k$。 绮月想知道好的三元组的数量。 ## Input 第一行包含一个整数 $n\ (3\le n\le 2\times 10^5)$,表示碱基序列的数量。 接下来 $n$ 行,每行包含一个字符串,其中第 $i$ 个字符串定义为碱基序列 $S_i\ (1\le |S_i|\le 2\times 10^6)$。保证 $\sum |S_i| \le 2 \times 10^6$。 ## Output 输出一个整数,表示好的三元组的数量。 [samples]
Samples
Input #1
3
AAA
AA
AA
Output #1
12
Input #2
3
ACGC
CTAT
ACAT
Output #2
1
Input #3
4
A
C
T
G
Output #3
0
API Response (JSON)
{
  "problem": {
    "name": "[HUSTFC 2023] 基因编辑",
    "description": {
      "content": "绮月有 $n$ 条 DNA 碱基序列 $S_1,S_2,\\dots S_n$,每条碱基序列可以用一个仅包含 `A`、`C`、`G` 和 `T` 这四种大写字母的字符串表示。 绮月可以拼合两条 DNA 碱基序列,具体操作为将前一条碱基序列的一个前缀(可以为空)和后一条的一个后缀(可以为空)结合,如 `ACGC` 与 `CTAT` 拼合就有可能得到 `ACGCTAT`、`ACGCCTAT`、`ACA",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1500,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9778"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "绮月有 $n$ 条 DNA 碱基序列 $S_1,S_2,\\dots S_n$,每条碱基序列可以用一个仅包含 `A`、`C`、`G` 和 `T` 这四种大写字母的字符串表示。\n\n绮月可以拼合两条 DNA 碱基序列,具体操作为将前一条碱基序列的一个前缀(可以为空)和后一条的一个后缀(可以为空)结合,如 `ACGC` 与 `CTAT` 拼合就有可能得到 `ACGCTAT`、`ACGCCTAT`、`ACA...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments