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 分)

1009 Product of Polynomials

1009 Product of Polynomials

1009 Product of Polynomials (25分) 多项式乘法

1009 Product of Polynomials (25 分)