测试网站兼容/百度竞价seo排名
目录
- 一.题目
- 二.分析
- 三.代码
- 四.结果
一.题目
二.分析
∙\bullet∙ 题目的大概意思就是首先给出两行的输入,每行的第一个数据代表后面有几项多项式,每队都由次数和系数组成,我们最后就是要将相同的系数进行合并。然后返回格式与输入格式相同,但是注意次数要从高到底排序。
∙\bullet∙ 因为我搜到好多都是用数组做的,在这里我就给出一种使用STL容器map的方法。
∙\bullet∙ 我们使用的map格式如下:
map<int,float>mpmap<int,float>mpmap<int,float>mp
在遍历数据的过程中,如果该次数已经用map记录过,那么直接将系数相加即可,否则则将该项加入map。最后要注意按格式输出,相应的注释已经补充在代码中。
三.代码
#include<iostream>
#include<vector>
#include<map>
#include<iomanip>
using namespace std;
int main()
{int n=0,a=0;float b=0;map<int,float>mp;while(cin>>n){for(int i=0;i<n;i++){cin>>a>>b;//如果map中没有该项则加入,否则将系数相加if(!mp.count(a)) mp[a]=b;else mp[a]+=b;//如果系数为0,那么直接删去这一项if(mp[a]==0) mp.erase(a);}}//如果最后多项式相加得到0,那么直接返回0if(mp.size()==0) {cout<<0;return 0;}cout<<mp.size()<<" ";int res=0;//因为map默认从小到大排序,所以我们倒序输出for(auto it=mp.rbegin();it!=mp.rend();it++){res++;cout<<it->first<<" ";cout<<fixed<<setprecision(1)<<it->second;//注意给出格式里面的空格位置if(res!=mp.size()) cout<<" ";}return 0;
}