PAT1009 Product of Polynomials

原题链接

PAT1009 Product of Polynomials

思路

注意最后结果的最大项系数最大为2000

代码

#include <bits/stdc++.h>
#include <iomanip>
using namespace std;

double a[10010],b[10010],c[10010];
//0-1000
int main(){
//2 1 2.4 0 3.2
//2 2 1.5 1 0.5
    int k,exp;
    float cof;
    cin>>k;
    for(int i=0;i < k;i++){
        cin>>exp>>cof;
        a[exp] = cof;
    }
    cin>>k;
    for(int i=0;i < k;i++){
        cin>>exp>>cof;
        b[exp] = cof;
    }

    vector<int>ans;//记录有的 
    for(int i=2010;i>=0;i--){
        if(a[i]!=0){
            for(int j=1010;j>=0;j--){
                if(b[j]!=0){
                    if(a[i]*b[j]!=0){
                        c[i+j] += a[i]*b[j];
                    }
                }
            }
        }
    }
    for(int i=2010;i>=0;i--){
        if(c[i]!=0){
            ans.push_back(i);
        }
    }
    k = ans.size();
    cout<<k;
    for(int i=0;i<k;i++){
        cout<<setiosflags(ios::fixed)<<setprecision(1)<<' '<<ans[i]<<' '<<c[ans[i]];
    }
    return 0;
} 

Add a Comment

邮箱地址不会被公开。