题意为给了你一个人多项式的式子
给你一个p找x的p次方的系数
emmmm二进制找规律
指数 二进制
1 1 (2^0)
2 10 (2^1)
3 11 (2^1 + 2^0)
4 100(2 ^2)
……
p = 3 时 系数 = a[1]*a[0];(2^1 + 2^0)(上面的权为1,和0)
p = 4时 系数 = a[2];(2 ^2)上面的权为 2;
所以系数极为转化为二进制时上面的a[权]的和;
代码如下
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int t,i,n,q,ans;
long long p;
int a[55];
cin>>t;
while(t--)
{
cin>>n;
for(int i = 0;i < n; ++i)
cin>>a[i];
cin>>q;
while(q--)
{
i = 0;
ans = 1;
cin>>p;
while(p)
{
if(i >= n)//当没有指数p的数时那么系数为零;
{
ans = 0;
break;
}
if(p%2)//为手写版二进制
ans = (ans*a[i])%2012;
++i;
p = p/2;
}
cout<<ans<<'\n';
}
}
return 0;
}