标签:
Alice and Bob like playing games very much.Today, they introduce a new game.
There is a polynomial like this: (a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1). Then Alice ask Bob Q questions. In the expansion of the Polynomial, Given an integer P, please tell the coefficient of the x^P.
Can you help Bob answer these questions?
For each case, the first line contains a number n, then n numbers a0, a1, .... an-1 followed in the next line. In the third line is a number Q, and then following Q numbers P.
1 <= T <= 20
1 <= n <= 50
0 <= ai <= 100
Q <= 1000
0 <= P <= 1234567898765432
122 1234
20
思路:只要随便找个式子化简开就能看出规律,和二进制有点关系。
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #include <set> #include <queue> #include <stack> #include <map> using namespace std; typedef long long LL; const int mod =2012; LL a[1010]; int main() { LL T; LL n,q; LL p; LL ans,j,i; scanf("%lld",&T); while(T--) { scanf("%lld",&n); memset(a,0,sizeof(a)); for(i=0; i<n; i++) scanf("%lld",&a[i]); scanf("%lld",&q); while(q--) { ans=1; j=0; scanf("%lld",&p); while(p) { if(p%2==1) { ans=(ans*a[j])%mod; } p=p/2; j++; } printf("%lld\n",ans); } } return 0; }
标签:
原文地址:http://blog.csdn.net/u013486414/article/details/44682637