L2-018. 多项式A除以B*
#include <iostream>
#include <map>
#include <cmath>
#include <cstdio>
using namespace std;//系数要求保留一位小数,所以绝对值小于0.05都当成0对待
struct poly
{
int e;
double c;
}p[],ans[];
int main()
{
int n = ,e = ,c = ,m = -,ant = ;//m记录a中最高次 e是指数 c是系数 输入都是整数
map<int,double> q;
cin>>n;
for(int i = ;i < n;i ++)
{
cin>>e>>c;
q[e] = c;
if(i == )m = e;
}
cin>>n;
for(int i = ;i < n;i ++)
{
cin>>p[i].e>>p[i].c;
}
while(m >= p[].e)
{
double change = q[m]/p[].c;//分析中所述的 a中最高次除以b中最高次 系数比
int diff = m - p[].e;//指数比
if(fabs(change) >= 0.05)
{
ans[ant].e = diff;
ans[ant ++].c = change;
for(int i = ;i < n;i ++)//change 乘以 b 更新a中的变化
{
q[p[i].e + diff] -= change * p[i].c;
}
}
else m --;//一定别忘了m-- 不然会超时,太过于马虎 if else语句还是想清楚 写完备一些好光有if没else就容易错误啊。。
while(m >= p[].e && fabs(q[m]) < 0.05)
{
m --;
}
}
cout<<ant;
if(!ant)cout<<" 0 0.0";
for(int i = ;i < ant;i ++)
printf(" %d %.1f",ans[i].e,ans[i].c);
cout<<endl;
ant = ;
while(m >= )
{
if(fabs(q[m]) >= 0.05)
{
ans[ant].e = m;
ans[ant ++].c = q[m];
}
m --;
}
cout<<ant;
if(!ant)cout<<" 0 0.0";
for(int i = ;i < ant;i ++)
printf(" %d %.1f",ans[i].e,ans[i].c);
}
L2-018. 多项式A除以B*的更多相关文章
- 多项式A除以B
这个问题我是在PAT大区赛题里遇见的.题目如下: 多项式A除以B(25 分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数 ...
- 7-10 多项式A除以B (25分)(多项式除法)
7-10 多项式A除以B (25分) 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出 ...
- (转载) 天梯赛 L2-018. 多项式A除以B
题目链接 题目描述 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出 ...
- 团体程序设计天梯赛 L2-018. 多项式A除以B(模拟)
题意:给你A,B两个多项式,问你A/B的值:注意多项式给你的是每个式子的指数与系数:保留到一位小数,如果出现系数为0(保留后也是)的情况,请不要输出它,如果没有非系数为0的情况就输出特殊 题解:多项式 ...
- L2-018 多项式A除以B(模拟)
这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...
- 7-10 多项式A除以B (25 分)
题目链接:https://pintia.cn/problem-sets/1108548596745592832/problems/1108548661014913033 题目大意: 这仍然是一道关于A ...
- pta l2-18(多项式A除以B)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805060372905984 题意:给定两个多项式,求出其做除法 ...
- CCCC L2-018. 多项式A除以B 直接上map,然后stack处理输出
https://www.patest.cn/contests/gplt/L2-018 题意:模拟多项式除法. 题解:短除法,初中奥数老师,高中数学老师,高数老师都讲过2333. 模拟之前,关于保存 多 ...
- PAT L2-018. 多项式A除以B
暴力,模拟. 比赛搞了一个小时搞到了$1$分.赛场上不够冷静......之前没接触过多项式除法,但赛场上想到了除法的规则,莫名其妙写的时候不知道哪里崩了.对于这样的题目,应该先测一测数据的指数是不是很 ...
随机推荐
- 表单、框架结构的大概、CSS开头(选择器以及常用属性)
<!--为网页添加图标,写在头部--> <link rel="shortcut icon" href="favicon.ico(路径)" ty ...
- Python Rabbit 广播模式
Exchange 在RabbitMQ下进行广播模式需要用到,exchange这个参数,它会把发送的消息推送到queues队列中,exchange必须要知道,它接下来收到的消息要分给谁,是要发给一个qu ...
- 无实体反序列化Json
public class ExectendHelp { private int index = 0; public void GetLast(JObject obj, ref JToken token ...
- jQuery validator plugin 之 custom methods 案例1:multi email
1.add method jQuery.validator.addMethod( "multiemail", function (value, element) { var ema ...
- Learning-Python【32】:进程理论基础
什么是进程 进程就是一个程序在一个数据集上的一次动态执行过程.是用来描述程序执行过程的虚拟概念.进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的.进程一般由 ...
- 1、代理服务器及haproxy基础
1.web站点架构 前端一台主机提供app server,当用户请求到达时,如果要存储结构化数据,就需要找一台主机做database server.当业务达到一定程度时,要把web server.存储 ...
- 远程连接报错“This could be due to CredSSP encryption oracle remediation.”
description: 当远程服务器上没有“Encryption Oracle Remediation" setting in local group policy. 尝试远程连接会出现上 ...
- 北京动点飞扬软件招募【Android全职工程师】
要求: 1 至少半年2年以上android开发经验,能力第一,学历不限 2 至少5个以上正规app开发经验 3 项目周期12个月左右,要求一周内到岗 4 有意向者简历请发邮箱372900288@qq. ...
- svg(一)
<svg width="100%" height="100%" version="1.1" xmlns="http://ww ...
- C/C++.【转】解析URL的转义字符百分比(%)字符串
1.来自:[HTTP]_[C_C++]_[解析URL的转义字符百分比字符串] - 猪一戒 - 博客园.html(http://www.cnblogs.com/zhuyijie/p/6465303.ht ...