码迷,mamicode.com
首页 > 其他好文 > 详细

1009 Product of Polynomials (25分)

时间:2020-03-10 01:28:16      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:不用   ret   段错误   技术   测试   复杂   div   语言   图片   

 

技术图片

这题乙级也做过啊...虽然现在做的也不是很流畅。我终于大胆的开数组了!不过我真的好爱用结构体和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分)

标签:不用   ret   段错误   技术   测试   复杂   div   语言   图片   

原文地址:https://www.cnblogs.com/wsshub/p/12452691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!