题目
This time, you are supposed to find A×B where A and B are two polynomials.
Input Specification:
Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:
where K is the number of nonzero terms in the polynomial, and are the exponents and coefficients, respectively. It is given that .
Output Specification:
For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.
Sample Input:
1 | 2 1 2.4 0 3.2 |
Sample Output:
1 | 3 3 3.6 2 6.0 1 1.6 |
题解
思路
- 先把第一个行列式存起来
- 读取第二个行列式的时候,对每一项,都要和第一项的每一项相乘
- 其中,指数相加,系数相称
- 原理很简单,主要是数据结构
- 优雅一点可以采用哈希集,暴力一点可以采用数组
- 这题时间限制很宽松,使用数组问题不大
- 我对第一个行列式使用了哈希集,对答案使用了数组,两种都给大家cover到。
数据结构
- poly 是一个哈希表,用以存放第一个行列式
- 键是指数
- 值是系数
- ans 是一个数组,用以存放答案
- 下标代表指数
- 值代表系数,默认是0
算法
- 对第一个行列式读取并存放到哈希集合中
- 读取第二个行列式的每一项,将每一项都和原来的哈希集的每一项相乘,添加到答案中
- 输出数量和答案
代码
因为使用Python能AC,因此只放了Python AC的题解。
1 | # 数据结构定义 |