AcWing 1481. 多项式乘积
原题链接
简单
作者:
Spike_
,
2024-02-27 22:20:17
,
所有人可见
,
阅读 24
#include <iostream>
#include <vector>
using namespace std;
const int N = 1e6 + 10;
int E1[N], E2[N], e[N];
double C1[N], C2[N], c[N];
int main(){
int n1, n2;
cin >> n1;
for(int i = 0; i < n1; i++){
cin >> E1[i];
cin >> C1[i];
}
cin >> n2;
for(int i = 0; i < n2; i++){
cin >> E2[i];
cin >> C2[i];
}
for(int i = 0; i < n1; i++){
for(int j = 0; j < n2; j++){
int temp_e = E1[i] + E2[j];
double temp_c =C1[i] * C2[j];
e[temp_e] = 1;
c[temp_e] += temp_c;
}
}
// 输出的多项式当系数为0时不输出该项
int count = 0;
for(int i = 0; i < N; i++){
if(e[i] == 1 && c[i] != 0)
count++;
}
cout << count;
for(int i = N - 1; i >= 0; i--){
if(e[i] != 0 && c[i] != 0){
printf(" %d %.1lf", i, c[i]);
}
}
return 0;
}