PAT (Advanced Level) 1009. Product of Polynomials (25)
简单模拟。
#include<iostream> #include<cstring> #include<cmath> #include<algorithm> #include<cstdio> using namespace std; double a[3000],b[3000],c[3000]; int k; int main() { for(int i=0;i<=2000;i++) a[i]=b[i]=c[i]=0; int Max=-1; scanf("%d",&k); for(int i=1;i<=k;i++) { int id;double num; scanf("%d%lf",&id,&num); a[id]=num; } scanf("%d",&k); for(int i=1;i<=k;i++) { int id;double num; scanf("%d%lf",&id,&num); b[id]=num; } for(int i=0;i<=1000;i++) { for(int j=0;j<=1000;j++) { c[i+j]+=a[i]*b[j]; } } int cnt=0; for(int i=2000;i>=0;i--) if(c[i]!=0) cnt++; printf("%d",cnt); int op=0; for(int i=2000;i>=0;i--) if(c[i]!=0) printf(" %d %.1lf",i,c[i]); return 0; }