#P6871. [COCI 2013/2014 #6] HASH

    ID: 7246 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>2013COCI(克罗地亚)

[COCI 2013/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})。

MODMOD 是 2m2^m 形式的整数。

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

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

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

输入格式

输入一行,包含三个整数 nn,kk 和 mm。

输出格式

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

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

提示

【样例解释】

样例 1 解释

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

样例 2 解释

单词b。

样例 3 解释

词语为dxl,hph,lxd 和 xpx。

【数据规模与约定】

1≤n≤101\le n\le 10,0≤k<2m0\le k<2^m,6≤m≤256\le m\le 25。

【说明】

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