9582: 字符串哈希

内存限制:512 MB 时间限制:1 S
题面:Markdown 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

小A和小B同学刚刚在克利切洛夫斯基老师的课上学习了什么是哈希函数,他们一人设计了一个自己的哈希函数,分别是$A(s)$和$B(s)$,其中$s$为小写字母组成的字符串: $A(s) = \left(\sum_{i=0}^{n-1} \text{ord}(s_i) \cdot 27^i \right)$ $B(s) = \left(\sum_{i=0}^{n-1} \text{ord}(s_i) \cdot 10^i \right) \mod 10007$ $\text{ord}(s_i)$表示$s$的第$i$个字符从前往后数在a-z中排在第几个,如$\text{ord}(a)=1$,$\text{ord}(z)=26$。 但是两个人看到对方的哈希函数后立刻开始争吵,小A认为小B设计的哈希函数很容易就能构造出发生碰撞的方案;小B则指出小A的哈希函数值范围太大,无法在哈希表中使用。为了平息他们的争吵,克利切洛夫斯基老师给两人出了一道题目:他想知道对于全部的长度小于等于$k$的非空字符串$s$,有多少个字符串能够恰好使得$B(s)^3 \cdot c + B(s)^2 \cdot d + B(s) \cdot e + f = A(s)$?其中$c,d,e,f$是给定的非负整数。

输入格式

多组测试数据,第一行一个数字表示测试组数$T$,满足$1 \leq T \leq 10$。 之后每组数据,第一行是三个整数$k,c,d,e,f$,分别表示可能的字符串的最大长度,以及老师出的题目中的$c,d,e,f$。其中$1 \leq k \leq 10$,$0 \leq c,d,e,f \leq 1,000,000$。

输出格式

共$T$行,每行一个整数,表示该组测试数据对应的答案结果。

输入样例 复制

2
5 0 0 1 0
5 0 0 2 34

输出样例 复制

26
4