1009 Product of Polynomials (PTA)

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:

K N​1​​ aN​1​​​​ N​2​​ aN​2​​​​ … NK​​ aNK​​​​

where K is the number of nonzero terms in the polynomial, Ni​​ and aNi​​​​ (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10, 0≤NK​​<⋯<N​2​​<N​1​​≤1000.

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:

2 1 2.4 0 3.2
2 2 1.5 1 0.5

      
    

Sample Output:

3 3 3.6 2 6.0 1 1.6

编译器:Python(python3)





p1 = list(input().split())
p2 = list(input().split())

d1 = {}
d2 = {}
d3 = {}


list1 = []


for i in range(1,len(p1),2):
    if float(p1[i+1]) !=0:
        d1[int(p1[i])] = float(p1[i+1])
for i in range(1,len(p2),2):
    if float(p2[i+1]) !=0:
        d2[int(p2[i])] = float(p2[i+1])
        
for k1 in d1:
    for k2 in d2:
        temp = d3.get(k1+k2,0) + d1.get(k1)*d2.get(k2)
        if temp !=0:
            d3[k1+k2] = round(temp,1)
        else:
            del d3[k1+k2]
list1 = [str(len(d3))]            
if len(d3) != 0:            
    for i in sorted(d3.keys(),reverse = True):
        list1.append(str(i))
        list1.append(str(d3[i]))
else:
    list1.append(str(0))
    list1.append(str(0))

print(' '.join(list1))

发表评论

电子邮件地址不会被公开。 必填项已用*标注