http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2608
题意;给一个多项式,然后给你多个p让你求x^p对应的系数
思路:每个p都可以由唯一的一组二进制数相加的到,然后只需要将他们的系数乘起来就行了。
#include<bits/stdc++.h>
#define LL long long
using namespace std;
#define eps 1E-10
#define INF 0x3f3f3f3f
int a[10000];
int main()
{
int T,n;
while(~scanf("%d",&T))
{
while(T--)
{
scanf("%d",&n);
memset(a,0,sizeof(a));
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int q;
scanf("%d",&q);
while(q--)
{
LL t;
scanf("%lld",&t);
int ans=1;
int i=0;
while(t) ///如1110 是由 1000 100 10 组成
{
if(t%2) ///找出对应的二进制数
{
(ans*=a[i])%=2012;
}
i++;
t>>=1;
if(i>n)
break;
}
printf("%d\n",ans);
}
}
}
}