PAT A1009 Product of Polynomials
思路:先将多项式 A 输入并封装到 vector 中,再开设一个大小为 2000 的数组 ans 来记录答案,ans[i] 代表 coef,i 代表 exp。
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
typedef struct {
int exp;
double coef;
} Poly;
double ans[2005];
vector<Poly> p;
int main() {
int k, exp;
double coef;
cin >> k;
Poly temp;
for(int i = 0; i < k; i++) {
cin >> exp >> coef;
temp.exp = exp;
temp.coef = coef;
p.push_back(temp);
}
cin >> k;
for(int i = 0; i < k; i++) {
cin >> exp >> coef;
for(int j = 0; j < p.size(); j++) {
ans[exp + p[j].exp] += coef * p[j].coef;
}
}
int num = 0;
for(int i = 0; i <= 2000; i++)
if(ans[i] != 0.0) num++;
cout << num;
for(int i = 2000; i >= 0; i--)
if(ans[i] != 0.0)
printf(" %d %.1f", i, ans[i]);
return 0;
}