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

题解:多项式类似于“a*x^4+b*x^3+c*x^2+d*x^1+e*x^0”的形式,两个多项式除法就是模拟除法做

   现在被除数最大指数的系数、被 除数最大指数的系数除以、结果就是商的系数,两个指数的差就是商的指数

   然后枚举除数每一位乘以这个值来被 被除数减去,最后找被除数后一个位置继续循环,直到被除数最大项大于除数最大项

   最后有一个点需要注意,因为需要的是保留答案后系数为0也不能输出,所以在保留答案是一定要判断是否为0,不能再最后输出时在判断

#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<string>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define eps 1E-1
#define Eps 1E-1
/*注意可能会有输出-0.000*/
#define sgn(x) (x<-Eps? -1 :x<Eps? 0:1)//x为两个浮点数差的比较,注意返回整型
#define cvs(x) (x > 0.0 ? x+eps : x-eps)//浮点数转化
#define zero(x) (((x)>0?(x):-(x))<eps)//判断是否等于0
#define mul(a,b) (a<<b)
#define dir(a,b) (a>>b)
typedef long long ll;
typedef unsigned long long ull;
const int Inf=<<;
const ll INF=1LL<<;
const double Pi=acos(-1.0);
const int Mod=1e9+;
const int Max=;
double divide[Max],divisor[Max];//被除数 除数
double business[Max],remainde[Max];//商 余数
int busindex[Max],remindex[Max];//答案系数
int coundiv,counsor;
void Print(int coun,int* ansindex,double* ans)
{
if(!coun)
printf("0 0 0.0\n");
else
{
printf("%d",coun);
for(int i=;i<coun;++i)
{
if(!zero(ans[i]))
printf(" %d %.1f",ansindex[i],ans[i]);
}
printf("\n");
}
return;
}
void Divison(int n,int dif,double num)
{
for(int i=n;i>=dif;--i)
{
divide[i]-=divisor[i-dif]*num;
}
return;
}
void Solve(int maxdiv,int maxsor)
{
coundiv=counsor=;
for(int i=maxdiv;i>=maxsor;--i)
{
busindex[coundiv]=i-maxsor;
int dif=busindex[coundiv];
business[coundiv]=divide[i]/divisor[maxsor];
Divison(i,dif,business[coundiv]);
business[coundiv]=business[coundiv];
if(sgn(business[coundiv])!=)//注意
coundiv++;
}
for(int i=maxsor-;i>=;--i)
{
remindex[counsor]=i;
remainde[counsor]=divide[i];
if(sgn(remainde[counsor])!=)
counsor++;
}
return;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
memset(divide,,sizeof(divide));
memset(divisor,,sizeof(divisor));
int maxdiv=,maxsor=;
int index;
for(int i=;i<n;++i)
{
scanf("%d",&index);
maxdiv=max(maxdiv,index);
scanf("%lf",&divide[index]);
}
scanf("%d",&n);
for(int i=;i<n;++i)
{
scanf("%d",&index);
maxsor=max(maxsor,index);
scanf("%lf",&divisor[index]);
}
Solve(maxdiv,maxsor);
Print(coundiv,busindex,business);
Print(counsor,remindex,remainde);
}
return ;
}

团体程序设计天梯赛 L2-018. 多项式A除以B(模拟)的更多相关文章

  1. 团体程序设计天梯赛-练习集-L1-037. A除以B

    L1-037. A除以B 真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果. 输入格式: 输入在第一行给出两个整数A和B(-100 <= A, ...

  2. 团体程序设计天梯赛(CCCC) L3009 长城 方法证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  3. 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  4. 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  5. 团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  6. 团体程序设计天梯赛(CCCC) L3014 周游世界 BFS证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  7. 团体程序设计天梯赛(CCCC) L3013 非常弹的球 不同思路

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  8. 团体程序设计天梯赛(CCCC) L3012 水果忍者 上凸或下凹的证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  9. 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)

    前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...

  10. PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集

    L2-001 紧急救援 (25 分)   作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...

随机推荐

  1. 存一些可能会用得到的vue的UI框架

    VUX 项目主页:https://vux.li/#/ github地址:https://github.com/airyland/vux element UI(饿了么后台) Element 是由饿了么U ...

  2. vue+node+mongoDB 火车票H5(四)---完成静态页面

    各项配置都好了,就可以开始写静态页面了,先别急着写,看一下页面又哪些公用的部分可以提取出来的,统一放到components组件文件夹中 header头部文件夹放一些头部常用组件,如首页的banner切 ...

  3. css生成三角形

     转载:http://www.cnblogs.com/lhb25/p/css-and-css3-triangle.html Triangle Up    1 2 3 4 5 6 7 #triangle ...

  4. java反射——方法

    大家都知道反射技术在Java里面时非常重要的一个技术点,因为Java好多框架的编写都是基于反射的,别的不多说,spring框架里面的IOC就是基于反射实现.那么什么是反射呢?JAVA反射机制是在运行状 ...

  5. zTree 树形控件 ajax动态加载数据

    很久没搞过树形控件了 , 再次接触看官网文档有点没懂,于是在网上找了个代码copy上,但数据是写死的,就想这在用ajax异步取出数据替换,下面是js代码 <SCRIPT type="t ...

  6. JavaScript 学习(3)核心对象

    ##JavaScript 学习 3 1.核心对象 1.1 String对象 声明和生成 var myString="Hello"; var myString=new String( ...

  7. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  8. SQL Server 加前导0

    declare @a int declare @b int set @a = 1 --需要显示的数字 set @b = 3 --显示位数 select right(cast(power(10,@b) ...

  9. Js 实现ajax

    一.JS实现的ajax 1.AJAX核心(XMLHttpRequest) 其实AJAX就是在Javascript中多添加了一个对象:XMLHttpRequest对象.所有的异步交互都是使用XMLHtt ...

  10. session补充