【Python】PAT甲级 A1009:Product of Polynomials
题目内容
This time, you are supposed to find × where and 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 is the number of nonzero terms in the polynomial, and (=1,2,⋯,) are the exponents and coefficients, respectively. It is given that 1⩽K⩽10,0⩽ N_K < ... < N_2 < N_1 ⩽10000⩽NK<⋯<N2<N1⩽1000..
Output Specification:
For each test case you should output the product of and 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:
Sample Output:
题目要点
本题 25 分,是比较简单的模拟题。在输入时,Python可以不用考虑给定的,直接用数组切片隔位取指数列表、系数列表,再用zip()
构造字典。
这道题与前面文章提到的A1002问题类似,一些相似的解法、代码在前文中有提到,这里不在赘述。

重点需要考虑的是如何将多项式的指数和对应系数映射。C/C++可以用数组下标作为指数,数组浮点数值为对应系数。这里Python使用字典比较方便,而且考虑到两个多项式的指数项不一定相同,在求和时要指数项系数对应相加,Python可以使用集合的求并集|
运算符实现。
注意,测试点6是非零系数项个数,也就是为0的情况,这时候只输出0
。如果有多余空格会出现“格式错误”。
AC 源代码