这仍然是一道关于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

具体过程参考代码注释 

完整代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
double a[maxn],b2[maxn],c[maxn];
int b1[maxn];
int main()
{
//    ios::sync_with_stdio(false);
//    cin.tie(0);int n,first;cin>>n;for(int i=0;i<n;i++){int x;cin>>x;cin>>a[x];//a[x]表示第一个多项式指数为x的项的系数if(!i) first=x;//first记录第一项的指数,即:多项式的最高次幂}int m;cin>>m;for(int i=0;i<m;i++) cin>>b1[i]>>b2[i];//b1[i]和b2[i]分别表示第二个多项式第i项的指数和系数for(int i=first;i>=b1[0];i--){,int t=i-b1[0];//t为当前被除数和除数的最高次幂之差,即:当前商的指数c[t]=a[i]/b2[0];//c[t]为商中指数为t的这一项的系数(因为每次都是让除数*商消掉被除数的最高次幂那一项,所以商的系数=除数的系数/被除数的系数)for(int j=0;j<m;j++){a[t+b1[j]]-=c[t]*b2[j];//得出商之后,被除数的每一项都要减去商*除数作为下一次的被除数,不能再除时,a[i]就保存了余数中指数为i的系数}}int cnt1=0,cnt2=0;//cnt1和cnt2统计商和余数中非零项的个数for(int i=first;i>=0;i--){if(fabs(c[i])>=0.05) cnt1++;if(fabs(a[i])>=0.05) cnt2++;}cout<<cnt1;for(int i=first;i>=0;i--){if(fabs(c[i])>=0.05){printf(" %d %.1f",i,c[i]);}}if(cnt1==0) cout<<" 0 0.0";cout<<endl;cout<<cnt2;for(int i=first;i>=0;i--){if(fabs(a[i])>=0.05){printf(" %d %.1f",i,a[i]);}}if(cnt2==0) cout<<" 0 0.0"<<endl;return 0;
}

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

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

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

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

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

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

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

  4. 多项式A除以B(模拟)

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

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

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

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

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

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

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

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

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

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

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

  10. 团体天梯 L2-018 多项式A除以B (25 分)(测试点分析)

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

最新文章

  1. 使用react全家桶制作博客后台管理系统
  2. Linux Kernel TCP/IP Stack — L3 Layer — netfilter 框架 — conntrack(CT,连接跟踪)
  3. ST17H26之pwm功能
  4. GS01创建信息集及其他GROUP在ABAP程序中的调用方法
  5. HTML5人喜欢用来调侃自己生活状态的话
  6. QQ尾巴病毒的Visual C++实现探讨
  7. 思科怎么修改dhcp服务器地址,思科交换机配置作为DHCP服务器的配置方法是怎样的?...
  8. 一次Web请求返回406原因与解决方案
  9. Java - 利用StringEscapeUtils对字符串进行各种转义与反转义
  10. MyStringTokenize
  11. 喜大普奔,Google 的一小步!
  12. discuz6.1.0 弹出无效的图片文件解决办法
  13. 拓端tecdat|python关联规则学习:FP-Growth算法对药品进行“菜篮子”分析
  14. [Asp.net Mvc]通过UrlHelper扩展为js,css静态文件添加版本号
  15. c++ 开根号程序 算法实现 C++函数同时返回两个值
  16. 配置Windows系统的IP地址为静态IP
  17. 冒泡排序 (Java)
  18. Ubantu18.04安装 双系统 win10 SSD+HHD DELL笔记本
  19. 阿里云课堂-day06
  20. 【YBT2023寒假Day9 B】买棉花糖(DP)(分治)

热门文章

  1. LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))...
  2. 记录一次紫狐Rootkit应急响应过程
  3. EchartsBar 圆柱形渐变色柱状图
  4. Android 内存暴减的秘密?!
  5. C语言实现五子棋小游戏,草履虫都直呼不过如此
  6. Python网络爬虫:PPT素材
  7. mysql无法生成备份产生读锁_mydumper 备份原理和使用方法(备份mysql)
  8. 研究生复试发邮件注意事项
  9. Indexes in PostgreSQL — 7 (GIN)
  10. 写给那些进步缓慢却全然不知的IT人