PAT (Advanced Level) 1009 Product of Polynomials (25 分)
发布日期:2021-06-29 12:22:22 浏览次数:2 分类:技术文章

本文共 1089 字,大约阅读时间需要 3 分钟。

题目概述:

求解两个多项式之积

分析:

1.用map记录对应的项和系数
2.遍历mp1和mp2,使得他们每个项数之和的系数加上他们的系数之积,并将结果存入mp3中
3.忽略掉系数为0的项,求总项数
4.反向遍历,输出结果(忽略0项)

#include
using namespace std;map
mp1;map
mp2;map
mp3;int main(){
int k1, k2; int a; double b; cin >> k1; for(int i = 0; i < k1; i++) {
cin >> a >> b; mp1[a] = b; } cin >> k2; for(int i = 0; i < k2; i++) {
cin >> a >> b; mp2[a] = b; } for(auto it1 = mp1.begin(); it1 != mp1.end(); it1++) {
for(auto it2 = mp2.begin(); it2 != mp2.end(); it2++) {
mp3[it1->first + it2->first] += it1->second * it2->second; } } int cnt = 0; for(auto it = mp3.begin(); it != mp3.end(); it++) {
if(it->second != 0) cnt++; } cout << cnt; for(auto it = mp3.rbegin(); it != mp3.rend(); it++) {
if(it->second == 0) continue; printf(" %d %.1f", it->first, it->second); } cout << endl; return 0;}

总结:

1.注意rbegin和rend用法
2.注意mp的第二项为double

转载地址:https://bridge-killer.blog.csdn.net/article/details/115431068 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) 1010 Radix (25 分)
下一篇:PAT (Advanced Level) 1008 Elevator (20 分)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月28日 07时50分42秒