PAT (Advanced Level) 1002 A+B for Polynomials

题意

给定两个多项式AB,计算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 ! ! !

发布了94 篇原创文章 · 获赞 16 · 访问量 3910

猜你喜欢

转载自blog.csdn.net/abcdefbrhdb/article/details/104651652
今日推荐