L2-018 多项式A除以B (25 分)

题目链接

这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。
【输入格式】
输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:
N e[1] c[1] … e[N] c[N]
其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。

【输出格式】
分两行先后输出商和余,输出格式与输入格式相同,输出的系数保留小数点后1位。同行数字间以1个空格分隔,行首尾不得有多余空格。注意:零多项式是一个特殊多项式,对应输出为0 0 0.0。但非零多项式不能输出零系数(包括舍入后为0.0)的项。在样例中,余多项式其实有常数项-1/27,但因其舍入后为0.0,故不输出。

输入样例:
4 4 1 2 -3 1 -1 0 -1
3 2 3 1 -2 0 1
输出样例:
3 2 0.3 1 0.2 0 -1.0
1 1 -3.1

【参考:点此打开链接】

【分析】

分析:a = x^4 - 3x^2 - x - 1,b = 3x^2 - 2x + 1。
对于a的第一项指数4比b最高次指数2大,那么商的第一项就是x4/3x2 = 0.3x2,然后用0.3x2去乘以b的每一项,在a中更新,也就是a要减去b*0.3x^2,更新完以后,a要继续重复以上过程,知道a中最高次比b中最高次低,剩下的就算是余数了,这里用了个map记录a,方便进行更新,b自始至终是不变的。

【AC代码】

详细的在代码中有注解

#include<cstdio>
#include<cstring>
#include<string>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<cstdlib>
#define eps 1e-9
const double pi = acos(-1.0);
#define ll long long
const ll N = 1e8;using namespace std;struct poly
{int e;double c;
}ans[10000],p[10000];int main()
{int n, e, c, m = -1, cnt = 0;//m记录a中最高次e的指数,map<int, double>q;cin >> n;for (int i = 0; i < n; i++){cin >> e >> c;q[e] = c;//将多项式a的指数和系数值都存入map中if (i == 0)m = e;//找到最高次指数}cin >> n;for (int i = 0; i < n; i++)cin >> p[i].e >> p[i].c;while (m >= p[0].e)//若a中的最高次比b中最高次大{double change = q[m] / p[0].c;//a的最高次除以b最高次的系数比double diff = m - p[0].e;//指数比,减完之后的值if (fabs(change) >= 0.05){ans[cnt].e = diff;//将系数和指数都存入ans数组中ans[cnt++].c = change;for (int i = 0; i < n; i++){q[p[i].e + diff] -= change*p[i].c;//change乘以b更新a中的变化}}else m--;//就执行判断下一项while (fabs(q[m]) < 0.05&&m >= p[0].e)m--;}cout << cnt;if (!cnt)cout << " 0 0.0";for (int i = 0; i < cnt; i++)printf(" %d %.1lf", ans[i].e, ans[i].c);cout << endl;cnt = 0;while (m >= 0){if (fabs(q[m]) >= 0.05){ans[cnt].e = m;ans[cnt++].c = q[m];}m--;}cout << cnt;if (!cnt)cout << " 0 0.0";for (int i = 0; i < cnt; i++)printf(" %d %.1lf", ans[i].e, ans[i].c);return 0;
}

多项式A除以B(模拟)相关推荐

  1. 模拟计算(L2-018 多项式A除以B (25 分))

    这一题是一道模拟计算题,只要足够细心就可以解决问题. 原题链接 L2-018 多项式A除以B (25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R ...

  2. PTA 多项式A除以B (25 分)

    7-10 多项式A除以B (25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一 ...

  3. 多项式A除以B(PTA)

    多项式A除以B 题目 答案 参考 总结 题目 答案 #include<iostream> #include<math.h> using namespace std; const ...

  4. 【CCCC】L2-018 多项式A除以B (25分),多项式除法

    problem L2-018 多项式A除以B (25分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入 ...

  5. 2016CCCC天梯--多项式A除以B

    L2-018. 多项式A除以B 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这仍然是一道关于A/B的题,只不过A和B都换成了 ...

  6. PTA L2-018 多项式A除以B (多项式除法)

    L2-018 多项式A除以B (25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给 ...

  7. L2-018. 多项式A除以B

    L2-018. 多项式A除以B 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这仍然是一道关于A/B的题,只不过A和B都换成了 ...

  8. L2-018 多项式A除以B (25 分)

    two L2-018 多项式A除以B (25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行 ...

  9. 双移线驾驶员模型,多项式双移线模拟 采用多项式搭建双移线期望路径,基于郭孔辉单点预瞄理论,搭建双移线simulink驾驶员模型

    双移线驾驶员模型,多项式双移线模拟 软件使用:Matlab/Simulink 适用场景:采用多项式搭建双移线期望路径,基于郭孔辉单点预瞄理论,搭建双移线simulink驾驶员模型. 模型包含:双移线模 ...

最新文章

  1. 为什么说 Transformer 就是图神经网络?
  2. python经典实例pdf-Python机器学习经典实例_PDF电子书
  3. php找零页面,找零问题
  4. 医院耗材管理系统开发_12
  5. Windows下安装PyQt5教程
  6. C#实现Zip文件解压
  7. 离散数学-欧拉图和哈密顿图
  8. 软件开发生命周期的管理
  9. python图片分析中央气象台降水_02_中央气象台
  10. 看什么书可以提高情商?提高情商的书籍排行榜
  11. 百度搜索结果页面的参数_反馈搜索结果用时(rsv_sug4)
  12. 计算机专业专硕考研学校排名,计算机考研学校排名
  13. 几种常用的软件测试工具
  14. GeoScene Pro 2.1下载地址与安装基本要求
  15. Layui使用中遇到的问题
  16. 112.Android 简单的群发微信,群发文本和图片,一键群发
  17. 第一次亲密接触——二狗子初识 CDN
  18. MeterSphere:超好用的开源测试平台
  19. 厦门大学c语言第七八章作业答案,数据结构第七章考试题库(含答案).doc
  20. getElementById的使用方法

热门文章

  1. 图解企业6S管理体系及如何推行6S管理?
  2. RISC-V 指令格式和6种基本整数指令
  3. 当今[远程抄表](http://hkhuake.com.cn/)的所有无线通信模式---手机基站移动无线通讯网络
  4. FANUC机器人MOTN-170负载接近容许值警告的含义
  5. 中国信通院发布《车联网白皮书》,车联网迈入商用部署新时期
  6. 请把学生名与考试分数录入到Map中,并按分数显示前三名成绩学员的名字
  7. sql server 数据库集群
  8. 【系统盘】U盘启动 镜像制作 UltralSO
  9. UVA - 1366 Martian Mining
  10. 距2022高考还有10天,让我们一起为届高考生加油吧