題目鏈接:https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000
題目大意:多項式相加
分析:hash表,用一個double型數組保存每個項的各自係數,數組下標代表冪次,對應相加。count計數,這裏注意,計數時,不能在讀入的過程中用,要考慮相互抵消的情況。
代碼:
#include<iostream>
#include<cstdio>
using namespace std;
#include<algorithm>
#include<cmath>
#include<set>
#include<map>
#include<string>
#include<cstring>
#include<vector>
#include<cstdlib>
#define ll long long int
const int maxn=1005;
int main()
{
double num[maxn];
memset(num,0,sizeof(num));
int k;
int b=0;
for(int j=0;j<2;j++){
cin>>k;
int n;
double a;
for(int i=0;i<k;i++){
cin>>n>>a;
num[n]+=a;
}
}
for(int i=0;i<maxn;i++) //加好後纔來記錄count
if(num[i]!=0) b++;
printf("%d",b);
for(int i=maxn-1;i>=0;i--){
if(num[i]!=0){
printf(" %d %.1f",i,num[i]);
}
}
}