2013山东省第四届ACM省赛 Alice and Bob
2016-04-13 20:43
330 查看
题意: 有一个式子(a0*x^(2^0)+1)
* (a1 * x^(2^1)+1)*.......*(an-1 *
x^(2^(n-1))+1),给定一个P,求x^P的系数。
思路:根据推导得出:
例如 x^3 3的二进制表示为11,则x^3的系数为a[0]*a[1]
x^4 4的二进制表示为100,则x^4的系数为a[2]
对于本题输入n个ai,在将P化为二进制的过程中,当二进制位数大于n时,ai=0,所以x^P的系数为0。
* (a1 * x^(2^1)+1)*.......*(an-1 *
x^(2^(n-1))+1),给定一个P,求x^P的系数。
思路:根据推导得出:
例如 x^3 3的二进制表示为11,则x^3的系数为a[0]*a[1]
x^4 4的二进制表示为100,则x^4的系数为a[2]
对于本题输入n个ai,在将P化为二进制的过程中,当二进制位数大于n时,ai=0,所以x^P的系数为0。
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; int main() { int t,a[105],n,q,m; long long int p; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=0; i<n; i++) scanf("%d",&a[i]); scanf("%d",&q); while(q--) { long long int sum=1; int t=0; m=-1; scanf("%lld",&p); while(p) { t=p%2; p/=2; m++; if(m>=n) { sum=0; break; } if(t==1) sum=(sum*a[m])%2012; } printf("%lld\n",sum); } } return 0; }
相关文章推荐
- java中用中国网建提供的SMS短信平台发送短信
- 操作系统2015(四川大学软件学院)
- Android自定义View的一些理解
- 【Oracle】5.事务
- 0基础学C#教程2--------C#如何调用excel,试用最新版的excel
- 局部加权线性回归
- 个人加快android studio编译速度(不改),加个ssd就不用看了- -
- Systrace快捷命令
- 似魔鬼的 『 document.write 』
- Dubbo超时和重连机制
- 用 Nokitjs 解决前端开发中的跨域问题
- 冒泡排序
- FindBugs插件的安装与使用
- javanio 实现socket通信
- 制作网页---BJUI订制控件
- NewSQL体系比Hadoop更具效率
- 经典问题:开关灯问题(高斯消元)(3364)
- 常规求幂、二分求幂、快速位求幂
- iOS知识点汇总
- 进程间通信的方式