Timer is Running

Number of palindromic strings
Submissions: 1034   Accuracy:


  Difficulty: Medium   Marks: 4

Derek is forming palindromic strings of length lesser than or equal to N, with first K characters of lowercase English language, such that each character in a string doesn’t appear more than twice.

Help Derek in finding out the total number of such strings formed.



The first line of input contains a single integer T denoting the number of test cases. Then T test cases follow. Each test case consists of two integers N and K as described in the problem statement.


For each test case, print in a new line, the number of such strings formed. As the results can be very large, print your answer modulo 10^9+7.



1 <= T <= 100

1 <= K <= 26

1 <= N <= 52

2*K >= N





3 2

4 3





For the 1st sample test case:

The possible strings are: “a”, “b”, “aa”, “bb”, “aba”, “bab”. Hence, the answer is 6.

For the 2nd sample test case:

The possible strings are: "a", "b", "c", "aa", "bb", "cc", "aba", "aca", "bab", "bcb", "cac", "cbc", "abba", "acca", "baab", "bccb", "caac", "cbbc". Hence, the answer is 18.

** For More Input/Output Examples Use 'Expected Output' option **

Contributor: Sajal Agrawal
Author: sajalagrawal

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.

Need help with your code? Please use ide.geeksforgeeks.org, generate link and share the link here.

to report an issue on this page.