pat刷题: 1002 A+B for Polynomials

在这里插入图片描述
解题思路:
根据题目的要求,输入数据是两组,并且采用指数下降的方式,并且输出的结果是,两项的指数相同的项的合并,这样的话第一时间会想到map的应用特性,并且指定key的排序规则为递减,即设置greater<int>即可。直接在输入时,就进行数据处理,对指数相同的项合并。

参考代码如下:(一直提交是部分正确,17分,所谓当局迷,还请哪位做过或有发现哪里我没有考虑到的大佬,指正一下,非常感谢!)

// polynomials 多项式 ;exponents 指数 ;coefficients系数
#include<iostream>
#include<iterator>
#include<map>
using namespace std;
typedef map<int, float,greater<int> > map_;
int main() {
	map_ res;
	int k;//exp为指数,coef为系数,k为非零项的个数
	int exp1;
	float coef1;
	for (int j = 0; j < 2; ++j) {
		cin >> k;
		for (int i = 0; i < k; ++i) {
			cin >> exp1 >> coef1;
			res[exp1] += coef1;
		}
	}
	cout << res.size();
	for (map_::iterator it = res.begin(); it != res.end(); ++it) {
		printf(" %d %.1f", it->first, it->second);
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值