
本题一定要弄清楚 多项式相乘的规则 就可以顺利解出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
int () { double P1[1010][2] = {0}; double P2[1010][2] = {0}; double P[2020][2] = {0}; int m; double e, c; scanf("%d", &m); for(int j = 0; j < m; j++) { scanf("%lf%lf", &e, &c); P1[(int)e][0] = e; P1[(int)e][1] = c; } scanf("%d", &m); for(int j = 0; j < m; j++) { scanf("%lf%lf", &e, &c); P2[(int)e][0] = e; P2[(int)e][1] = c; } for(int i = 0; i < 1010; i++) { for(int j = 0; j < 1010; j++) { if((P1[i][1] != 0) && (P2[j][1] != 0)) { P[i+j][1] = P[i+j][1] + P1[i][1]*P2[j][1]; P[i+j][0] = (double)(i + j); } } } int maxn = 0; for(int i = 0; i < 2020; i++) { if(P[i][1] != 0) { maxn++; } } printf("%d", maxn); for(int i = 2019; i >= 0; i--) { if(P[i][1] != 0) { printf(" %d %.1lf", (int)P[i][0], P[i][1]); } } return 0; }
|
近期评论