# include <iostream>
# include <map>
# include <functional>
using namespace std;
int main()
{
int K1, K2;
int exp; // 指数
double coe; // 系数
map<int, double> m1;
map<int, double> m2;
// 输入两个多项式
cin >> K1;
for(int i=0;i<K1;++i){
cin >> exp >> coe;
m1[exp] = coe;
}
cin >> K2;
for(int i=0;i<K2;++i){
cin >> exp >> coe;
m2[exp] = coe;
}
// 用map简简单单(记得从大到小排序)
map<int, double, greater<int>> M;
int EXP;
double COE;
for(const pair<int, double> i: m1){
for(const pair<int, double> j: m2){
EXP = i.first + j.first;
COE = i.second * j.second;
M[EXP] += COE;
// 系数为0的项不加入多项式中(否则测试点0会不通过)
if(M[EXP] == 0)
M.erase(EXP);
}
}
// 输出
cout << M.size();
for(auto i: M){
printf(" %d %.1lf", i.first, i.second);
}cout << endl;
return 0;
}
【PAT甲级、C++ map简单写法】1009 Product of Polynomials (25分)
最新推荐文章于 2021-03-22 23:09:36 发布