|
||||||||||
cjj's string gameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 500 Accepted Submission(s): 311 Problem Description cjj has k kinds of characters the number of which are infinite. He wants to build two strings with the characters. The lengths of the strings are both equal to n. cjj also define a cjj_val for two string. a[i,j] means the substring a[i],a[i+1],...,a[j-1],a[j] of string a. cjj_val = max({ j-i+1 }) where a[i,j]=b[i,j] for every 0<=i<=j<n. Know cjj wants to know that if he wants to build two strings with k different characters whose cjj_val is equal to m, how many ways can he do that. Input The first line of the input data is an integer T(1<=T<=100), means the number of test case. Next T lines, each line contains three integers n(1<=n<=1000000000), m(1<=m<=10), k(1<=k<=26). Output For each test case, print one line, the number of the ways to build the string. The answer will be very large, you just need to output ans mod 1000000007. Sample Input
Sample Output
Author BUPT Source | ||||||||||
|