PAT 1002 A+B for Polynomials

个人学习记录,代码难免不尽人意

在这里插入图片描述
Output Specification:
For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.

Sample Input:
2 1 2.4 0 3.2
2 2 1.5 1 0.5
Sample Output:
3 2 1.5 1 2.9 0 3.2

#include<cstdio>
#include<iostream>
#include<queue>
#include<map>
using namespace std;
queue<pair<int,double> > q1,q2,q3;
int main(){int k;scanf("%d",&k);for(int i=0;i<k;i++){int n;double a;scanf("%d %lf",&n,&a);q1.push(make_pair(n,a));}scanf("%d",&k);for(int i=0;i<k;i++){int n;double a;scanf("%d %lf",&n,&a);q2.push(make_pair(n,a));}while(!q1.empty()&&!q2.empty()){pair<int,double> p1=q1.front();pair<int,double> p2=q2.front();if(p1.first==p2.first) {q1.pop();q2.pop();double temp=p1.second+p2.second;if(temp!=0)q3.push(make_pair(p1.first,temp));}else{if(p1.first>p2.first){q3.push(p1);q1.pop();}else{q3.push(p2);q2.pop();}}}while(!q1.empty()){pair<int,double> p1=q1.front();q3.push(p1);q1.pop();}while(!q2.empty()){pair<int,double> p2=q2.front();q3.push(p2);q2.pop();}printf("%d",q3.size());while(!q3.empty()){pair<int,double> p3=q3.front();q3.pop();printf(" %d %.1f",p3.first,p3.second);}
}

这道题我采用了队列pair的做法,pair是非常好用的类型,可以代替二元结构体。一开始考虑不周只得了部分分数。需要注意的是,两个多项式相加可能会互相抵消,例如 -x+x=0这样的情况,所以在判断幂数相等之后需要额外判断系数是否相加为0,如果为0则不用入结果队列而是直接将原队列出列即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/53126.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炼钢工艺流程(2)

1. 轧制单元 更换前后两个工作辊之间的轧制对象称为轧制单元&#xff0c;对应一个轧制计划。两个 支撑辊之间的轧制对象是由多个轧制单元组成&#xff0c;称为轧制单元组&#xff0c;对应多个轧制计 划。 轧制单元的结构 每个计划开始的部分板坯按照宽度非减的方向排列来加热轧…

RISC-V - 小记

文章目录 关于 RISC-V安装 关于 RISC-V RISC : Reduced Instruction Set Computing RISC-V(“RISC five”)的目标是成为一个通用的指令集架构(ISA) 官网&#xff1a;https://riscv.orggithub : https://github.com/riscv 教程 [完结] 循序渐进&#xff0c;学习开发一个RISC-…

35岁体能断崖,裁员热潮,焦虑倍增,你当如何应对?

小明是一个35岁的研发工程师&#xff0c;最近正面临工作压力和身体状况的双重挑战。他在一家大厂工作多年&#xff0c;但由于公司裁员的原因&#xff0c;他也成为了其中的一员。 小明虽然年龄已经不再年轻&#xff0c;但他一直以来都非常注重自己的体能状况。每天早上&#xf…

SpringBoot+AOP+Redission实战分布式锁

文章目录 前言一、Redission是什么&#xff1f;二、使用场景三、代码实战1.项目结构2.类图3.maven依赖4.yml5.config6.annotation7.aop8.model9.service 四、单元测试总结 前言 在集群环境下非单体应用存在的问题&#xff1a;JVM锁只能控制本地资源的访问&#xff0c;无法控制…

elasticSearch常见的面试题

常见的面试问题 描述使用场景 es集群架构3个节点&#xff0c;根据不同的服务创建不同的索引&#xff0c;根据日期和环境&#xff0c;平均每天递增60*2&#xff0c;大约60Gb的数据。 调优技巧 原文参考&#xff1a;干货 | BAT等一线大厂 Elasticsearch面试题解读 - 掘金 设计阶…

Linux中的firewall-cmd

2023年8月4日&#xff0c;周五上午 目录 打开端口关闭端口查看某个端口是否打开查看当前防火墙设置firewall-cmd中的服务在防火墙中什么是服务&#xff1f;为什么会有服务&#xff1f;打开或关闭服务查看某个服务是否打开firewall-cmd中的 zones查看所有可用的zones&#xff0…

k8s手动发布镜像的方法

kubectl edit deploy编辑对应的文件&#xff0c;并:wq!保存即可

LinkedList和ArrayList有什么区别?

ArrayList和LinkedList的大致区别&#xff1a; ArrayList是实现了基于动态数组的数据结构&#xff0c;LinkedList基于链表的数据结构。 对于随机访问get和set&#xff0c;ArrayList觉得优于LinkedList&#xff0c;因为LinkedList要移动指针。 对于新增和删除操作add和remov…

环球数科、BUFFALO面试(部分)

环球数科 系统复杂且需求迭代频繁&#xff0c;如何维护微服务之间的接口调用关系&#xff1f; API接口在设计的时候需要大量的需求文档&#xff0c;而且文档也需要不断维护。如何高效维护API文档就很重要了。以下是一些常见的API管理工具&#xff1a;Swagger&#xff1a;Swag…

appium自动爬取数据

爬取类容&#xff1a;推荐知识点中所有的题目 爬取方式&#xff1a;appium模拟操作获取前端数据 入门级简单实现&#xff0c;针对题目和答案是文字内容的没有提取出来 适用场景;数据不多&#xff0c;参数加密&#xff0c;反爬严格等场景 from appium import webdriver impor…

【机器学习 | 决策树】利用数据的潜力:用决策树解锁洞察力

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 论文阅读

论文信息 题目&#xff1a;LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 作者&#xff1a;Devendra Singh Chaplot, Dhiraj Gandhi 项目地址&#xff1a;https://devendrachaplot.github.io/projects/Neural-SLAM 代码地址&#xff1a;https://github.com/devendrachaplot/N…