zoukankan      html  css  js  c++  java
  • L2-018. 多项式A除以B*

    L2-018. 多项式A除以B

    参考博客

     1 #include <iostream>
     2 #include <map>
     3 #include <cmath>
     4 #include <cstdio>
     5 using namespace std;//系数要求保留一位小数,所以绝对值小于0.05都当成0对待
     6 struct poly
     7 {
     8     int e;
     9     double c;
    10 }p[10000],ans[10000];
    11 int main()
    12 {
    13     int n = 0,e = 0,c = 0,m = -1,ant = 0;//m记录a中最高次 e是指数 c是系数 输入都是整数
    14     map<int,double> q;
    15     cin>>n;
    16     for(int i = 0;i < n;i ++)
    17     {
    18         cin>>e>>c;
    19         q[e] = c;
    20         if(i == 0)m = e;
    21     }
    22     cin>>n;
    23     for(int i = 0;i < n;i ++)
    24     {
    25         cin>>p[i].e>>p[i].c;
    26     }
    27     while(m >= p[0].e)
    28     {
    29         double change = q[m]/p[0].c;//分析中所述的 a中最高次除以b中最高次 系数比
    30         int diff = m - p[0].e;//指数比
    31         if(fabs(change) >= 0.05)
    32         {
    33             ans[ant].e = diff;
    34             ans[ant ++].c = change;
    35             for(int i = 0;i < n;i ++)//change 乘以 b 更新a中的变化
    36             {
    37                 q[p[i].e + diff] -= change * p[i].c;
    38             }
    39         }
    40         else m --;//一定别忘了m--  不然会超时,太过于马虎  if else语句还是想清楚 写完备一些好光有if没else就容易错误啊。。
    41         while(m >= p[0].e && fabs(q[m]) < 0.05)
    42         {
    43             m --;
    44         }
    45     }
    46     cout<<ant;
    47     if(!ant)cout<<" 0 0.0";
    48     for(int i = 0;i < ant;i ++)
    49         printf(" %d %.1f",ans[i].e,ans[i].c);
    50     cout<<endl;
    51     ant = 0;
    52     while(m >= 0)
    53     {
    54         if(fabs(q[m]) >= 0.05)
    55         {
    56             ans[ant].e = m;
    57             ans[ant ++].c = q[m];
    58         }
    59         m --;
    60     }
    61     cout<<ant;
    62     if(!ant)cout<<" 0 0.0";
    63     for(int i = 0;i < ant;i ++)
    64         printf(" %d %.1f",ans[i].e,ans[i].c);
    65 }
  • 相关阅读:
    mysql主从复制
    nginx代理tcp协议连接mysql
    spark安装配置
    DataX 3.0简介 安装及使用
    Consul 快速入门
    Etcd 使用入门
    常见负载均衡算法
    Container is running beyond memory limits
    HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}
    快速搞定Windows10环境下hadoop安装和配置
  • 原文地址:https://www.cnblogs.com/Annetree/p/8680730.html
Copyright © 2011-2022 走看看