zoukankan      html  css  js  c++  java
  • 1002 A+B for Polynomials (25分)

    1.多项式为0,直接输出0

    2.系数为0的项不输出

    3.注意double类型的判0

      1 #include <iostream>
      2 #include <vector>
      3 #include <iomanip>
      4 #include <cmath>
      5 using namespace std;
      6 
      7 int main()
      8 {
      9     vector<int> a, b;//次数
     10     vector<double>a1, b1;//系数
     11     vector<int>sum;//次数
     12     vector<double>sum1;//系数
     13     int Ka;
     14     int fz = 1;//多项式为0标志,fz==0时不为0
     15     cin >> Ka;
     16     for (int i = 0; i < Ka; i++)
     17     {
     18         int temp;
     19         double temp2;
     20         cin >> temp;
     21         a.push_back(temp);
     22         cin >> temp2;
     23         a1.push_back(temp2);
     24     }
     25     int Kb;
     26     cin >> Kb;
     27     for (int i = 0; i < Kb; i++)
     28     {
     29         int temp;
     30         double temp2;
     31         cin >> temp;
     32         b.push_back(temp);
     33         cin >> temp2;
     34         b1.push_back(temp2);
     35         for (int j = 0; j < Ka; j++)
     36         {
     37             if (a[j] == b[i])
     38             {
     39                 b1[i] += a1[j];
     40             }
     41         }
     42     }
     43     int K = Ka > Kb ? Ka : Kb;
     44     int i, j;
     45     for (i = 0, j = 0; i < Ka || j < Kb;)
     46     {
     47         if (i < Ka && j < Kb)
     48         {
     49             if (a[i] == b[j])//a,b有同次项时先把a系数加到b系数上
     50             {
     51                 if (fabs(b1[j]) > 1e-15)
     52                 {
     53                     fz = 0;
     54                     sum.push_back(b[j]);
     55                     sum1.push_back(b1[j]);
     56                 }
     57                 i++;
     58                 j++;
     59             }
     60             else if (a[i] != b[j])
     61             {
     62                 if (a[i] > b[j])
     63                 {
     64                     if (fabs(a1[i]) > 1e-15)
     65                     {
     66                         fz = 0;
     67                         sum.push_back(a[i]);
     68                         sum1.push_back(a1[i]);
     69                     }
     70                     i++;
     71                 }
     72                 else
     73                 {
     74                     if (fabs(b1[j]) > 1e-15)
     75                     {
     76                         fz = 0;
     77                         sum.push_back(b[j]);
     78                         sum1.push_back(b1[j]);
     79                     }
     80                     j++;
     81                 }
     82             }
     83         }
     84         else if (i == Ka)
     85         {
     86             if (fabs(b1[j]) > 1e-15)
     87             {
     88                 fz = 0;
     89                 sum.push_back(b[j]);
     90                 sum1.push_back(b1[j]);
     91             }
     92             j++;
     93         }
     94         else if (j == Kb)
     95         {
     96             if (fabs(a1[i]) > 1e-15)
     97             {
     98                 fz = 0;
     99                 sum.push_back(a[i]);
    100                 sum1.push_back(a1[i]);
    101             }
    102             i++;
    103         }
    104     }
    105     int flag_out = 0;//标记是否第一次输出,控制输出格式
    106     if (fz == 1)cout << "0";
    107     else
    108     {
    109         cout << sum.size() << ' ';
    110         for (int i = 0; i < sum.size(); i++)
    111         {
    112                 if (flag_out == 0)
    113                 {
    114                     cout << setprecision(1) << fixed << sum[i] << ' ' << sum1[i];
    115                     flag_out = 1;
    116                 }
    117                 else
    118                 {
    119                     cout << setprecision(1) << fixed << ' ' << sum[i] << ' ' << sum1[i];
    120                 }
    121             }
    122     }
    123     return 0;
    124 }
  • 相关阅读:
    HDU 5791 Two (DP)
    POJ 1088 滑雪 (DPor记忆化搜索)
    LightOJ 1011
    POJ 1787 Charlie's Change (多重背包 带结果组成)
    HDU 5550 Game Rooms (ccpc2015 K)(dp)
    HDU 5542 The Battle of Chibi (ccpc 南阳 C)(DP 树状数组 离散化)
    HDU 5543 Pick The Sticks (01背包)
    HDU 5546 Ancient Go (ccpc2015南阳G)
    NB-IoT的DRX、eDRX、PSM三个模式 (转载,描述的简单易懂)
    MQTT 嵌入式端通讯协议解析(转)
  • 原文地址:https://www.cnblogs.com/2020R/p/12834612.html
Copyright © 2011-2022 走看看