输入样例:
2 1 2.4 0 3.2
2 2 1.5 1 0.5
输出样例:
3 2 1.5 1 2.9 0 3.2
思路分析
要求输入多项式的幂和系数,对两个多项式进行加法
可用类似hash的方式设一个数组p, p下标表示多项式的幂
p中存储多项式的系数,再进行相应的加法即可
注意点:
1.系数为0的不输出
2.输入时可能系数有正负,若和为0不输出
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <queue>
#include <unordered_map>
#include <unordered_set>
using namespace std;
typedef pair<int, int> PII;
typedef long long LL;
const int N = 1010;
double p[N] = {};
int main( ) {
int k,n, cnt = 0;
double a;
cin >> k;
for ( int i=0; i <k; i++ ) {
scanf("%d %lf", &n, &a);
p[n] += a;
}
cin >> k;
for ( int i=0; i <k; i++ ) {
scanf("%d %lf", &n, &a);
p[n] += a;
}
for ( int i=0; i < N; i++ ) {
if ( p[i] != 0 ) cnt++;
}
cout << cnt;
for ( int i = N-1; i >= 0; i-- ) {
if ( p[i] != 0 ) printf(" %d %.1f", i, p[i] );
}
return 0;
}