您的位置:首页 > 其它

SDUT 2608

2016-05-01 22:15 246 查看
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);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: