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

    ID: 13267 传统题 1500ms 512MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2200动态规划字符串AC自动机计数DP

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

题目描述

Ene 喜欢回文。

Ene 现在有一些单词。她想选出若干个单词并将它们首尾相连,形成长度恰好为 LL 的回文串。每个单词都可以选择多次,也可以不选。

Ene 想知道这样做的方案数。Ene 认为两个方案不同,当且仅当各单词出现次数不同或它们的排列顺序不同,注意多种不同的方案可能会得到同一个回文串。由于答案可能会很大,你需要将答案对 1,000,000,0071,000,000,007 取模。

输入格式

输入的第一行包含两个正整数 N,LN, L,分别表示单词的数量和需要组成的回文串的长度。保证 1N3331\le N\le 3331L10001\le L\le 1000

接下来 NN 行,每行输入一个字符串 sis_i,表示一个单词。保证 1siL1\le |s_i| \le Li=1Nsi600\sum_{i=1}^N |s_i| \le 600;输入的单词仅包含小写字符,且互不相同。

输出格式

输出一个非负整数,表示组成回文串的方案数对 1,000,000,0071,000,000,007 取模后的结果。

输入输出样例 #1

输入 #1

7 9
cats
eel
eve
evil
lee
olive
stack

输出 #1

5

输入输出样例 #2

输入 #2

2 2
a
aa

输出 #2

2

输入输出样例 #3

输入 #3

6 12
aa
aab
no
on
pets
step

输出 #3

43

说明/提示

【样例解释 1】

有以下五种方案:

  • stack cats
  • evil olive
  • eel eve lee
  • lee eve eel
  • eve eve eve

【样例解释 2】

有以下两种方案:

  • a a
  • aa