1009 Product of Polynomials (25point(s)) Easy only once
基本思想:
没什么好说的,感觉个人比示例时间复杂度低一点,O(n)而不是O(mn);
关键点:
注意多项式相乘maxn开多少的问题;
1 #include<iostream> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<vector> 5 #include<string> 6 #include<math.h> 7 #include<algorithm> 8 using namespace std; 9 using std::vector; 10 struct element { 11 int e; 12 double c; 13 }; 14 vector<element>vec; 15 const int maxn = 2020; 16 double ed[maxn] = { 0 }; 17 int main() { 18 int n; 19 scanf("%d", &n); 20 vec.resize(n); 21 for (int i = 0; i < n; i++) { 22 scanf("%d %lf", &vec[i].e, &vec[i].c); 23 } 24 scanf("%d", &n); 25 int a; 26 double b; 27 for (int i = 0; i < n; i++) { 28 scanf("%d %lf", &a, &b); 29 for (int j = 0; j < vec.size(); j++) { 30 ed[a + vec[j].e] += vec[j].c*b; 31 } 32 } 33 int cnt=0; 34 for (int i = 0; i < maxn; i++) { 35 if (ed[i] != 0.0) 36 cnt++; 37 } 38 printf("%d", cnt); 39 for (int i = maxn - 1; i >= 0; i--) { 40 if (ed[i] != 0.0) { 41 printf(" %d %.1lf", i, ed[i]); 42 } 43 } 44 system("pause"); 45 return 0; 46 }

浙公网安备 33010602011771号