立志用最少的代码做最高效的表达


Alice and Bob like playing games very much.Today, they introduce a new game.

There is a polynomial like this: (a0x(20)+1) * (a1 * x(21)+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?

Input
The first line of the input is a number T, which means the number of the test cases.

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

Output
For each question of each test case, please output the answer module 2012.

Sample Input
1
2
2 1
2
3
4
Sample Output
2
0


解析

题意:输入a1−ana1-ana1−an,输入ppp,问输出xpx^pxp次方前面的系数是多少

解析:不难看出是一道规律推导题。
写出前三项相乘的结果:
(a0∗x+1)∗(a1∗x2+1)∗(a2∗x4+1)=a0a1a2∗x7+a1a2∗x6+a0a2∗x5+a2∗x4+...(a_0*x+1)*(a_1*x^2+1)*(a_2*x^4+1)=a_0a_1a_2*x^7+a_1a_2*x^6+a_0a_2*x^5+a_2*x^4+...(a0​∗x+1)∗(a1​∗x2+1)∗(a2​∗x4+1)=a0​a1​a2​∗x7+a1​a2​∗x6+a0​a2​∗x5+a2​∗x4+...

进而推导出:xpx^pxp的系数,就是按二进制位数取1的位子上相乘的值。


#include<bits/stdc++.h>
using namespace std;
typedef long long gg;
gg a[100];
int main() {int T; cin >> T; while(T--) {memset(a, 0, sizeof(a));int n; cin >> n; for(int i = 0; i < n; i++) cin >> a[i];int q; cin >> q;for(int i = 0; i < q; i++) {gg sum = 1, k = 0;       //存放结果 gg p; cin >> p;while(p) {if(p%2 == 1) sum = (sum*a[k])%2012; k++;p /= 2;}cout << sum << '\n'; }}return 0;
}

【解析】Alice and Bob_24行代码AC相关推荐

  1. 12行代码AC——L1-058 6翻了(15分)

    立志用更少的代码做更高效的表达 "666"是一种网络用语,大概是表示某人很厉害.我们很佩服的意思.最近又衍生出另一个数字"9",意思是"6翻了&quo ...

  2. 15行代码AC——1019 数字黑洞 (20分) 甲级1069. The Black Hole of Numbers (20)(解题报告)

    立志用更少的代码做更高效的表达 PAT甲级最优题解-->传送门 Pat乙级最优化代码+题解+分析汇总-->传送门 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非 ...

  3. 7行代码AC——1010 一元多项式求导 (25分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 设计函数求一元多项式的导数.(注:x​n(n为整数)的一阶导数为n*x​n-1​​ .) 输入格式: 以指数递降 ...

  4. 解题报告+优化——试题 基础练习 矩形面积交——16行代码AC

    励志用少的代码做高效的表达. 心路历程: 第一阶段: 最初想独立AC出这题来着,但考虑来考虑去,总觉得没想到点子上,缺点什么似的.于是搜网,果不其然,是一种全新的算法"线段交".当 ...

  5. 【简洁代码】1028 List Sorting (25 分)_26行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Excel can sort records according to any column. Now you are suppo ...

  6. 15行代码AC——ZOJ - 4118 Stones in the Bucket(思维题+优化方案)(第十届山东省ACM程序设计竞赛F题)

    励志用少的代码做高效表达. 思路分析 题意:给定n个数,问最少操作几次,使数列中的数全部相等. 操作一:将数列中任意数减一. 操作二:将数列中任意数减一.任意数加一(相当于把1挪过去) 涉及到最少的题 ...

  7. 16行代码AC——例题6-4破损的键盘(Broken Keyboard,UVa 11988)——解题报告

    励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-11988 题目大意: 输入一个字符串,输出在原本应该是怎么样的? 具体方法是: 若读取到'[', 则执行Home键:将光标移到行首. 若读 ...

  8. 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告

    题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...

  9. 高效万进制——蓝桥杯|HDOJ 1002 大数加法——30行代码AC

    浅谈进制思想: 日常生活中我们习惯用十进制去运算: 为了方便电脑识别开发出了二进制,又因为2^3=8 , 2^4=16,因此应运而生了八进制与16进制. 世上本没有路,走的人多了,也便成了路,那么既然 ...

最新文章

  1. 动态规划 最小编辑代价
  2. 如何利用远程桌面连接CentOS的Desktop版本
  3. Fliptile (dfs+二进制压缩)
  4. 【数据库】-基本特性
  5. linux优先级队列,Python3 线程优先级队列( Queue)
  6. python创建一个json_如何为Python选择一个更快的JSON库
  7. lambda表达式对list排序
  8. 算法合集之《信息学中守恒法的应用》
  9. linux的源码安装步骤(以安装nginx为例)
  10. EEGLAB教程-1.2通道定位
  11. zabbix监控软件的安装,详细教程
  12. 详解win11系统的硬件最低配置要求
  13. Java数字转化为阿拉伯数字_Java实现中文数字转换为阿拉伯数字
  14. 使用STM32进行Flash地址空间的数据读取
  15. 简答实现登录注册(需要导入JQ库)
  16. php如修改登陆后连接地址,两种wordpress更换后台登录界面logo图标方法
  17. 常见锐捷光模块型号大全
  18. Wi-Fi 7全新升级,小米蓄势待发!
  19. 网络变压器厂家分享:网络变压器(网络滤波器﹑网络隔离变压器)及作用;
  20. Git中smart Checkout与force checkout

热门文章

  1. 如何从0搭建公司的后端技术栈
  2. [Kafka与Spark集成系列三] Spark编程模型
  3. 理解HTTP协议中的multipart/form-data
  4. 内联函数和编译器对Go代码的优化
  5. UPYUN CDN 高可用架构实践
  6. nginx之rtmp模块引用计数设计
  7. centos 7.x 实现免密登录
  8. undefined: grpc.SupportPackageIsVersion6 和 undefined: grpc.ClientConnInterface 解决办法
  9. java异常 The origin server did not find a current representation for the target resource or is not
  10. Hive belline提交命令Error: org.apache.thrift.transport.TTransportException: java.net.SocketException: