1009 Product of Polynomials
Posted zhanghaijie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1009 Product of Polynomials相关的知识,希望对你有一定的参考价值。
1009 Product of Polynomials (25 分)
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?? a?N?1???? N?2?? a?N?2???? ... N?K?? a?N?K????
where K is the number of nonzero terms in the polynomial, N?i?? and a?N?i???? (i=1,2,?,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10, 0≤N?K??<?<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
坑点:
多个项的系数相加可能为0,如果系数为0则不应该进行输出。
代码如下:
#include<iostream> #include<sstream> #include<algorithm> #include<map> #include<cstdio> using namespace std; struct Cmpoperator { bool operator()(int key1,int key2) { return key1>key2; } }; int main() { map<int,double,Cmpoperator> A; map<int,double,Cmpoperator> B; int k=0; cin>>k; int exponents; double coefficients; for(int i=0; i<k; i++) { cin>>exponents>>coefficients; if(A.find(exponents)!=A.end()) { A[exponents]+=coefficients; } else { A[exponents]=coefficients; } } int k2; cin>>k2; for(int i=0; i<k2; i++) { cin>>exponents>>coefficients; map<int,double>::iterator iter=A.begin(); while(iter!=A.end()) { int first=iter->first+exponents; double second=iter->second*coefficients; if(B.find(first)!=B.end()) { B[first]+=second; } else { B[first]=second; } if(B[first]==0) B.erase(first); iter++; } } cout<<B.size(); map<int,double>::iterator iter = B.begin(); while(iter!=B.end()) { cout<<" "<<iter->first<<" "; printf("%.1f",iter->second); iter++; } return 0; }
以上是关于1009 Product of Polynomials的主要内容,如果未能解决你的问题,请参考以下文章
PAT1009:Product of Polynomials
1009 Product of Polynomials (25)(25 分)