【2021】阿里巴巴编程题(4星)第2题
#include <iostream>
using namespace std;
typedef long long LL;
LL mod = 1e9+7;
int main()
{
int T = 0;
cin >> T;
while(T--){
int a=0,b=0,n=0;
cin >> a >> b >> n;
LL res=0;
//a^k+1 + b^k+1 = (a^k + b^k)(a+b) - ab(a^k-1 + b^k-1)
LL k_befor = 2;
LL k_bb = 0;
for (int i = 1; i <= n; i++)
{
if(i==1)
{
res = a;
k_bb = k_befor;
k_befor = res;
continue;
}
res = ((a*k_befor-b*k_bb)+mod)%mod;
k_bb = k_befor;
k_befor = res;
}
res = (res+mod)%mod;
cout << res << endl;
}
return 0;
}
#题解#