#P6871. [COCI2013-2014#6] HASH

[COCI2013-2014#6] HASH

题目背景

Mirko 正在研究一个哈希函数。

题目描述

此哈希函数如此定义:

  • f(NULL)=0f(\rm{NULL})=0
  • $f(a_i+s_i)=((f(s_i)\times33)\operatorname{xor}\ \operatorname{ord}(a_i))\bmod MOD$

其中 aia_i 代表一个字符,sis_i 代表一个字符串,均由小写字母组成。

  • xor\operatorname{xor} 代表按位异或算符。
  • ord(letter)\operatorname{ord(letter)} 代表字母中字母的序数(如:ord(a)=1\operatorname{ord(a)=1}ord(z)=26\operatorname{ord(z)= 26})。

MODMOD2m2^m 形式的整数。

m=10m=10 时,哈希函数的一些值如下:

  • f(a)=1f(\texttt{a})=1
  • f(aa)=32f(\texttt{aa})=32
  • f(kit)=438f(\texttt{kit})=438

请问有多少个单词的哈希值为 kk 且长度为 nn

输入格式

输入一行,包含三个整数 nnkkmm

输出格式

输出一行,哈希值为 kk 且长度为 nn 的单词个数。

1 0 10 
0
1 2 10
1
3 16 10
4

提示

【样例解释】

样例 1 解释

字母表中的所有字符的 ord\text{ord} 值均不为 00

样例 2 解释

单词b

样例 3 解释

词语为dxlhphlxdxpx

【数据规模与约定】

1n101\le n\le 100k<2m0\le k<2^m6m256\le m\le 25

【说明】

题目译自 COCI2013-2014 CONTEST #6 T5 HASH