题意
给定两个多项式A
、B
,计算A+B
。
思路
搞个map记录一下对应指数下的系数即可。
- 坑点:
- 系数和为0需要被舍弃。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
map<int, double> mp;
auto read = [&] {
int n;
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
int nk;
double ank;
scanf("%d%lf", &nk, &ank);
mp[nk] += ank;
}
};
read();
read();
for (auto it = mp.begin(); it != mp.end(); ++it)
if (it->second == 0) mp.erase(it);
int num = mp.size();
printf("%d", num);
for (auto it = mp.rbegin(); it != mp.rend(); ++it) {
printf(" %d %.1lf", it->first, it->second);
}
printf("\n");
return 0;
}
HINT
不定时更新更多题解,详见 git ! ! !