题目描述
As we all known , the Fibonacci series : F(0) = 1, F(1) = 1, F(N) = F(N - 1) + F(N - 2) (N >= 2).Now we define another kind of Fibonacci : A(0) = 1 , A(1) =1,A(N) = X * A(N - 1) + Y * A(N - 2) (N >= 2).And we want to Calculate S(N) , S(N) = A(0)2 +A(1)2+……+A(n)2.
.
输入
第一行输入一个T,表示有T组测试数据(T<=10000),
There are several test cases.Each test case will contain three integers , N, X , Y .N : 2<= N <= 231 – 1X : 2<= X <= 231– 1Y : 2<= Y <= 231 – 1
输出
For each test case , output the answer of S(n).If the answer is too big , divide it by 10007 and give me the reminder.
样例输入
2
2 1 1
3 2 3
样例输出
6
196
#include <iostream>
using namespace std;
#define MOD 10007
#define LL long long
typedef struct
{
int data[4][4];
}M;
M m = {
1,0,0,0,
0,1,0,0,