题意:给出两个多项式的系数,求生成多项式的系数
坑:考虑系数和为零的情况要剔除
使用数组也可以做,我用的是map
#include<cstdio>
#include<map>
using namespace std;
map<int,double,greater<int> > mp;
int main()
{
int n,m;
scanf("%d",&n);
int u,sum=0;
double v;
for(int i=0;i<n;i++){
scanf("%d%lf",&u,&v);
mp[u]=v;
}
scanf("%d",&m);
for(int i=0;i<m;i++){
scanf("%d%lf",&u,&v);
if(mp.find(u)==mp.end()) mp[u]=v;
else {
mp[u]+=v;
if(mp[u]==0) mp.erase(u);//可能系数为零,要删去
}
}
sum=mp.size();
printf("%d",sum);
for(map<int,double>::iterator it=mp.begin();it!=mp.end();it++){
printf(" %d %.1f",it->first,it->second);
}
}