题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4506
题目大意;找规律,判断k的t次幂前面的系数。
#include <iostream>
#include <cstdio>
using namespace std;
__int64 fun(__int64 a,__int64 b)
{
__int64 s=1;
while (b)
{
if (b%2==1)
s=s*a%1000000007;
a=a*a%1000000007;
b>>=1;
}
return s%1000000007;
}
int main ()
{
int T;
__int64 a[10100];
scanf("%d",&T);
while (T--)
{
__int64 n,t,k;
scanf("%I64d%I64d%I64d",&n,&t,&k);
k=fun(k,t);
for (int i=0; i<n; i++)
{
scanf("%I64d",&a[i]);
a[i]=a[i]*k%1000000007;
}
t%=n;
printf("%I64d",a[(n+0-t)%n]);
for(int i=1; i<n; i++)
printf(" %I64d",a[(n+i-t)%n]);
printf ("\n");
}
return 0;
}