当前位置: 首页 > article >正文

pat甲级1002 A+B for Polynomials

This time, you are supposed to find A+B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

K N1​ aN1​​ N2​ aN2​​ ... NK​ aNK​​

where K is the number of nonzero terms in the polynomial, Ni​ and aNi​​ (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10,0≤NK​<⋯<N2​<N1​≤1000.

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

这道题又搞了一个多小时,多项式和为0 的时候没考虑到。另一个卡的时间最长的就是格式上,本想用cout实现,没成功,最后用printf.

#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<algorithm>
#include<iomanip>
using namespace std;

int main()
{
	int  k1, k2,ex;
	float  co;
	vector<pair<int, float>>vec;
	pair<int, float>p1;
	cin >> k1;
	for (int i = 0; i < k1; i++)
	{
		cin >> ex >> co;
		vec.push_back(make_pair(ex,co));
	}
	cin >> k2;
	for (int i = 0; i < k2; i++)
	{
		bool flag = false;
		cin >> ex >> co;
		for (auto& p : vec)
		{
			if (p.first == ex)
			{
				flag = true;
				p.second = co + p.second;
			}
		}
		if (!flag)
		{
			{
				p1.first = ex;
				p1.second = co;
				vec.push_back(p1);
			}
		}
	}
	sort(vec.begin(), vec.end(), [](const auto a, const auto b) {
		return a.first > b.first;
	});
	vec.erase(remove_if(vec.begin(), vec.end(), [](const auto& a) {return a.second == 0;}),vec.end());
	if (vec.size() == 0)
	{
		cout << vec.size();
		return 0;
	}
	cout << vec.size() << " ";
	int count = 0;
	for (auto c : vec)
	{

		printf("%d ", c.first);
		printf("%.1f", c.second);
		count++;
		if (count != vec.size())
			cout << " ";
	}
	cout << endl;
}


http://www.kler.cn/a/570003.html

相关文章:

  • netty 与 websocket
  • JavaScript阻塞
  • eMMC存储器详解(存储区域结构、EXT_CSD[179]、各分区介绍、主要引脚、命令格式与类型等)
  • 百度权重有什么用?如何查看百度权重?
  • 在Vscode开发QT,完成QT环境的配置
  • SQLyog 13.1.6 社区免费中文版:高效便捷的MySQL管理工具
  • 从黑暗到光明:FPC让盲人辅助眼镜成为视障者的生活明灯!【新立电子】
  • 【愚公系列】《Python网络爬虫从入门到精通》038-SQLite数据库
  • 8.路由原理专题
  • 命名管道——进程间通信
  • npm 常用命令指南
  • 校园二手交易微信小程序的设计与实现(论文源码调试讲解)
  • CentOS 7 中安装 Docker和Docker Compose
  • 什么是分布式和微服务?
  • NodeJS服务器 + Vue3框架 从搭建服务器 定义接口 到请求数据页面展示
  • Java里的ArrayList和LinkedList有什么区别?
  • 开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享
  • 爬虫部署:使用docker部署爬虫详解案例
  • 华为:Wireshark的OSPF抓包分析过程
  • 2. Prometheus的Exporter