题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805060372905984

题意:给定两个多项式,求出其做除法运算的商和余数。

思路:记下除数、被除数的最大指数,按照多项式除法的算法模拟即可,要注意的是这里的舍入操作是四舍五入,而不是向下取整,还有浮点运算存在误差,比如对浮点数f进行判零操作应该:abs(f)<0.0000001,因为你初始化f=0,在计算机中实际可能存的是0.00...01。

AC代码:

 #include<bits/stdc++.h>
using namespace std; const int maxn=;
int m1,m2,n,t1,t2,n1,n2;
double cc;
double c1[maxn],c2[maxn],c3[maxn]; int main(){
scanf("%d",&n);
for(int i=;i<n;++i){
scanf("%d%d",&t1,&t2);
if(i==) m1=t1;
c1[t1]=t2;
}
scanf("%d",&n);
for(int i=;i<n;++i){
scanf("%d%d",&t1,&t2);
if(i==) m2=t1,cc=t2;
c2[t1]=t2;
}
for(int i=m1;i>=m2;--i)
if(c1[i]<=-0.0000001||c1[i]>=0.0000001){
c3[i-m2]=c1[i]/cc;
for(int j=m2-;j>=;--j)
if(c2[j]<=-0.0000001||c2[j]>=0.0000001)
c1[i-m2+j]-=c1[i]*c2[j]/cc;
}
for(int i=m1-m2;i>=;--i)
if(abs(c3[i])+0.05>=0.1)
++n1;
for(int i=m2-;i>=;--i)
if(abs(c1[i])+0.05>=0.1)
++n2;
printf("%d",n1);
if(!n1)
printf(" 0 0.0");
for(int i=m1-m2;i>=;--i)
if(abs(c3[i])+0.05>=0.1)
printf(" %d %.1f",i,c3[i]);
printf("\n%d",n2);
if(!n2)
printf(" 0 0.0");
for(int i=m2-;i>=;--i)
if(abs(c1[i])+0.05>=0.1)
printf(" %d %.1f",i,c1[i]);
printf("\n");
return ;
}

pta l2-18(多项式A除以B)的更多相关文章

  1. 多项式A除以B

    这个问题我是在PAT大区赛题里遇见的.题目如下: 多项式A除以B(25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数 ...

  2. L2-018. 多项式A除以B*

    L2-018. 多项式A除以B 参考博客 #include <iostream> #include <map> #include <cmath> #include ...

  3. 7-10 多项式A除以B (25分)(多项式除法)

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

  4. (转载) 天梯赛 L2-018. 多项式A除以B

    题目链接 题目描述 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出 ...

  5. 团体程序设计天梯赛 L2-018. 多项式A除以B(模拟)

    题意:给你A,B两个多项式,问你A/B的值:注意多项式给你的是每个式子的指数与系数:保留到一位小数,如果出现系数为0(保留后也是)的情况,请不要输出它,如果没有非系数为0的情况就输出特殊 题解:多项式 ...

  6. L2-018 多项式A除以B(模拟)

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

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

    题目链接:https://pintia.cn/problem-sets/1108548596745592832/problems/1108548661014913033 题目大意: 这仍然是一道关于A ...

  8. CCCC L2-018. 多项式A除以B 直接上map,然后stack处理输出

    https://www.patest.cn/contests/gplt/L2-018 题意:模拟多项式除法. 题解:短除法,初中奥数老师,高中数学老师,高数老师都讲过2333. 模拟之前,关于保存 多 ...

  9. PAT L2-018. 多项式A除以B

    暴力,模拟. 比赛搞了一个小时搞到了$1$分.赛场上不够冷静......之前没接触过多项式除法,但赛场上想到了除法的规则,莫名其妙写的时候不知道哪里崩了.对于这样的题目,应该先测一测数据的指数是不是很 ...

随机推荐

  1. OV7670配置和调试小结

    先上一下OV7670的框架图 OV7670常用寄存器设置说明 直接看OV7670 Implementation Guide (V1.0)等 资料我已经上传了 https://files.cnblogs ...

  2. 分布式 session

    分布式session的实现方式: 一.Session Replication 方式管理 (即session复制) 简介:将一台机器上的Session数据广播复制到集群中其余机器上 使用场景:机器较少, ...

  3. fb发布打包外部资源

    将资源放在src文件夹下面即可 然后在打包那就会看到资源,勾上即可

  4. APP-4-百度地图定位

    APP-3-百度地图应用 需要根据上一步完成百度地图应用的测试,本文介绍Hbuilder通过MUI框架完成百度地图的定位. 1.代码部分 <!DOCTYPE html> <html& ...

  5. 页面中的checkbox多选值获取

    依据name名称获取选中值 var arr=document.getElementsByName("name");arr是一个数组,就是所有checkbox的值:for(i=0;i ...

  6. leetcode 错误题解,反面教材 Gas Station

    class Solution { public: int canCompleteCircuit(vector<int>& gas, vector<int>& c ...

  7. linux系统安装java环境

    参考资料:实测可用 https://www.cnblogs.com/xuliangxing/p/7066913.html

  8. Linux学习笔记--vim

    Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. vim的三种模式 命令模式(Command mode),输入模式(Insert m ...

  9. MVC part3

    SpringMVC原理图 SpringMVC接口解释 DispatcherServlet接口: Spring提供的前端控制器,所有的请求都有经过它来统一分发.在DispatcherServlet将请求 ...

  10. Asp.Net WebApi 学习记录(一)

    刚创建的 Asp.Net Web Api 项目,在进行简单的测试时发现返回的 JSON 数据很丑陋.与平时我们使用的 JSON.NET 序列化出来的字符串不一样.通过下面的设置就可以了: // 清除所 ...