[CCPC 2023 北京市赛] 勿蹖宠物

Luogu
IDLGP10047
Time1500ms
Memory1024MB
DifficultyP6
2023省赛/邀请赛
Ene 喜欢回文。 Ene 现在有一些单词。她想选出若干个单词并将它们首尾相连,形成长度恰好为 $L$ 的回文串。每个单词都可以选择多次,也可以不选。 Ene 想知道这样做的方案数。Ene 认为两个方案不同,当且仅当各单词出现次数不同或它们的排列顺序不同,注意多种不同的方案可能会得到同一个回文串。由于答案可能会很大,你需要将答案对 $1,000,000,007$ 取模。 ## Input 输入的第一行包含两个正整数 $N, L$,分别表示单词的数量和需要组成的回文串的长度。保证 $1\le N\le 333$,$1\le L\le 1000$。 接下来 $N$ 行,每行输入一个字符串 $s_i$,表示一个单词。保证 $1\le |s_i| \le L$,$\sum_{i=1}^N |s_i| \le 600$;输入的单词仅包含小写字符,且互不相同。 ## Output 输出一个非负整数,表示组成回文串的方案数对 $1,000,000,007$ 取模后的结果。 [samples] ## Note **【样例解释 1】** 有以下五种方案: - `stack` `cats` - `evil` `olive` - `eel` `eve` `lee` - `lee` `eve` `eel` - `eve` `eve` `eve` **【样例解释 2】** 有以下两种方案: - `a` `a` - `aa`
Samples
Input #1
7 9
cats
eel
eve
evil
lee
olive
stack
Output #1
5
Input #2
2 2
a
aa
Output #2
2
Input #3
6 12
aa
aab
no
on
pets
step
Output #3
43
API Response (JSON)
{
  "problem": {
    "name": "[CCPC 2023 北京市赛] 勿蹖宠物",
    "description": {
      "content": "Ene 喜欢回文。 Ene 现在有一些单词。她想选出若干个单词并将它们首尾相连,形成长度恰好为 $L$ 的回文串。每个单词都可以选择多次,也可以不选。 Ene 想知道这样做的方案数。Ene 认为两个方案不同,当且仅当各单词出现次数不同或它们的排列顺序不同,注意多种不同的方案可能会得到同一个回文串。由于答案可能会很大,你需要将答案对 $1,000,000,007$ 取模。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1500,
      "memory_limit": 1048576
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10047"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Ene 喜欢回文。\n\nEne 现在有一些单词。她想选出若干个单词并将它们首尾相连,形成长度恰好为 $L$ 的回文串。每个单词都可以选择多次,也可以不选。\n\nEne 想知道这样做的方案数。Ene 认为两个方案不同,当且仅当各单词出现次数不同或它们的排列顺序不同,注意多种不同的方案可能会得到同一个回文串。由于答案可能会很大,你需要将答案对 $1,000,000,007$ 取模。\n\n## Input\n\n...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments