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

1009 Product of Polynomials

时间:2018-10-08 16:35:18      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:pre   https   ems   2.x   col   div   using   color   ==   

题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805509540921344

多项式乘法,下面是代码:

 1 //注意输出的格式
 2 #include<iostream>
 3 #include<queue>
 4 #include<iomanip>
 5 using namespace std;
 6 struct pol{
 7     float xishu;
 8     int zhishu;
 9     friend bool operator < (pol x,pol y){
10         return x.zhishu < y.zhishu;
11     }
12     friend void operator * (pol &x,pol &other){
13         x.xishu *= other.xishu;
14         x.zhishu += other.zhishu;
15     }
16     friend void operator +(pol &x,pol &other){
17         x.xishu += other.xishu;
18     }
19 };
20 
21 int main(){
22     priority_queue<pol> q1;
23     priority_queue<pol> q2;
24     priority_queue<pol> q3;
25     priority_queue<pol> q4;
26     pol p;
27     int n,m;
28     cin >> n;
29     for(int i = 0; i < n; i++){
30         cin >> p.zhishu >> p.xishu;
31         q1.push(p);
32     }
33     cin >> m;
34     for(int i = 0; i < m; i++){
35         cin >> p.zhishu >> p.xishu;
36         q2.push(p);
37     }
38     //q3 = q2;
39     int n1 = q1.size();
40     int n2 = q2.size();
41     for(int i = 0 ; i < n1; i++){
42         pol p1 = q1.top();
43 
44         q1.pop();
45         for(int j = 0 ; j < n2; j++){
46             p = p1;
47             pol p2 = q2.top();
48 //            cout << p2.zhishu << " " << p2.xishu << endl;
49             q2.pop();
50             q3.push(p2);
51             p*p2;
52 //            cout << p.zhishu << " " << p.xishu << endl;
53             q4.push(p);
54         }
55         while(!q3.empty()){
56             q2.push(q3.top());
57             q3.pop();
58         }
59     }
60 //    for(int i = 0; i < q4.size(); i++){
61 ////        cout << q4.top().zhishu << " " << q4.top().xishu << endl;
62 //        q4.pop();
63 //    }
64     p = q4.top();
65     n1 = q4.size();
66     q4.pop();
67     for(int i = 0; i < n1-1; i++){
68         pol p1 = q4.top();
69         q4.pop();
70         if(p.zhishu == p1.zhishu) {
71 //            cout << p.zhishu << " " << p1.zhishu << endl;
72             p+p1;
73 //            cout << p.zhishu << " " << p.xishu << endl;
74 
75         }
76         else{
77             if(p.xishu != 0)
78                 q3.push(p);
79             p = p1;
80 //            cout << p.zhishu << " " << p.xishu << endl;
81         }
82     }
83     if(p.xishu != 0) q3.push(p);
84     //q3.push(p);
85     cout << q3.size() << " ";
86     n1 = q3.size();
87     for(int i = 0; i < n1; i++){
88         if(i != n1-1){
89             cout << q3.top().zhishu << " " << fixed << setprecision(1) << q3.top().xishu << " ";
90             q3.pop();
91         }
92         else cout << q3.top().zhishu << " " << fixed << setprecision(1) << q3.top().xishu;
93     }
94 //    cout << p.zhishu << " " << p.xishu;
95 //    cout << q3.size() << endl;
96 //    cout << q3.top().zhishu << " " << q3.top().xishu;
97     return 0;
98 }

 

1009 Product of Polynomials

标签:pre   https   ems   2.x   col   div   using   color   ==   

原文地址:https://www.cnblogs.com/huhusw/p/9755069.html

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