题解 | 求两个多项式的和
#include <iostream>
#include <map>
using namespace std;
map<int, int, greater<int>> mp; //次数, 系数
int main() {
int n, m;
cin >> n;
for (int i = 0; i < n; i ++) {
int a, b;
cin >> a >> b;
mp[b] = a;
}
cin >> m;
for (int i = 0; i < m; i ++) {
int a, b;
cin >> a >> b;
if (mp.count(b) == 0) mp[b] = a;
else mp[b] += a;
}
for (auto i : mp) {
if (i.second != 0) cout << i.second << ' ' << i.first << ' ';
}
}
map存一下,然后把全部的都加进去,然后就结束了,注意,我们要的排序结果是键的大到小,所以用greater修正
