1009 Product of Polynomials (25分)
Posted wsshub
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1009 Product of Polynomials (25分)相关的知识,希望对你有一定的参考价值。
这题乙级也做过啊...虽然现在做的也不是很流畅。我终于大胆的开数组了!不过我真的好爱用结构体和vector...pat很喜欢考这种跟数据结构关系不大的题...适合刚学语言的人用来刷题...这一次,可能是以前做过,所以会想到比较简单的实现(其实可以更简单)。我还想着把存放结果的数组C的容量开到1000,然后测试点4,5一直段错误或者答案错误,我还以为双层循环复杂度太高了呢...想了一会儿怎么不用嵌套循环,想不出来,应该是不可避免的。其实是数组开小了,两个最大指数为1000的多项式相乘,结果多项式的最高指数可能是2000,所以应该把数组开大一点。
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 struct Node{ 5 int exp; 6 double coe; 7 }; 8 int main(){ 9 int K1,K2,exp; 10 double coe; 11 Node node; 12 vector<Node> A; 13 vector<Node> B; 14 scanf("%d",&K1); 15 for(int j=0;j<K1;j++){ 16 scanf("%d%lf",&exp,&coe); 17 node.exp=exp; 18 node.coe=coe; 19 A.push_back(node); 20 } 21 scanf("%d",&K2); 22 double C[2001]={0}; 23 for(int j=0;j<K2;j++){ 24 scanf("%d%lf",&exp,&coe); 25 for(int i=0;i<K1;i++) 26 { 27 C[A[i].exp+exp]+=A[i].coe*coe; 28 } 29 } 30 31 int count=0; 32 for(int i=0;i<2001;i++) 33 { 34 if(C[i]!=0) 35 count++; 36 } 37 printf("%d",count); 38 for(int i=2000;i>=0;i--) 39 { 40 if(C[i]!=0) 41 printf(" %d %.1f",i,C[i]); 42 } 43 44 45 return 0; 46 }
以上是关于1009 Product of Polynomials (25分)的主要内容,如果未能解决你的问题,请参考以下文章
PAT1009:Product of Polynomials
1009 Product of Polynomials (25)(25 分)