1002. A+B for Polynomials (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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

Input

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

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,那么这一项不作考虑,需要去除。
若合并之后多项式值为0,直接输出0就行了(题目貌似也没特别说明这个情况该输出什么,坑)。
AC代码:
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<algorithm>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<string>
using namespace std;
const int N_MAX = +;
struct poly {
int exp;
double coe;
bool operator <(const poly&b) const{
return exp < b.exp;
}
};
poly P1[N_MAX],P2[N_MAX],P[N_MAX];
int k1, k2;
int main() {
scanf("%d",&k1);
for (int i = ; i < k1;i++) {
scanf("%d%lf",&P1[i].exp,&P1[i].coe);
}
scanf("%d",&k2);
for (int i = ; i < k2;i++) {
scanf("%d%lf",&P2[i].exp,&P2[i].coe);
} sort(P1, P1 + k1);
sort(P2, P2 + k2); int t1 = , t2 = ,t=;
while (t1<k1&&t2<k2) {
double tmp=;//不为0即可
if (P1[t1].exp == P2[t2].exp) {
tmp= P1[t1].coe + P2[t2].coe;
if (tmp) {//系数不为0,则要算进去
P[t].exp = P1[t1].exp;
P[t].coe = P1[t1].coe + P2[t2].coe;
}
t1++;
t2++;
}
else if (P1[t1].exp<P2[t2].exp) {//那个指数小用哪个
P[t].exp = P1[t1].exp;
P[t].coe = P1[t1].coe;
t1++;
}
else if (P1[t1].exp>P2[t2].exp) {//那个指数小用哪个
P[t].exp = P2[t2].exp;
P[t].coe = P2[t2].coe;
t2++;
}
if(tmp)t++;
} while (t1 < k1) {
P[t].exp = P1[t1].exp;
P[t].coe = P1[t1].coe;
t1++;
t++;
}
while (t2 < k2) {
P[t].exp = P2[t2].exp;
P[t].coe = P2[t2].coe;
t2++;
t++;
} if (t) {
printf("%d ", t);
for (int i = ; i < t; i++) {
printf("%d %.1f%c", P[t - i - ].exp, P[t - i - ].coe, i + == t ? '\n' : ' ');
}
}
else printf("%d\n",t); }

PAT 甲级1002 A+B for Polynomials (25)的更多相关文章

  1. PAT甲级 1002 A+B for Polynomials (25)(25 分)

    1002 A+B for Polynomials (25)(25 分) This time, you are supposed to find A+B where A and B are two po ...

  2. 【PAT】1002. A+B for Polynomials (25)

    1002. A+B for Polynomials (25) This time, you are supposed to find A+B where A and B are two polynom ...

  3. PAT 甲级 1002 A+B for Polynomials (25 分)

    1002 A+B for Polynomials (25 分) This time, you are supposed to find A+B where A and B are two polyno ...

  4. 甲级1002 A+B for Polynomials (25)

    题目描述: This time, you are supposed to find A+B where A and B are two polynomials. Input Each input fi ...

  5. PAT 甲级 1002 A+B for Polynomials

    https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000 This time, you are sup ...

  6. PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)

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

  7. PAT甲级——1002 A+B for Polynomials

    PATA1002 A+B for Polynomials This time, you are supposed to find A+B where A and B are two polynomia ...

  8. 【PAT甲级】1009 Product of Polynomials (25 分)

    题意: 给出两个多项式,计算两个多项式的积,并以指数从大到小输出多项式的指数个数,指数和系数. trick: 这道题数据未知,导致测试的时候发现不了问题所在. 用set统计非零项时,通过set.siz ...

  9. PAT (Advanced Level) Practice 1002 A+B for Polynomials (25 分) 凌宸1642

    PAT (Advanced Level) Practice 1002 A+B for Polynomials (25 分) 凌宸1642 题目描述: This time, you are suppos ...

随机推荐

  1. js生成指定范围内随机数

    其现方法的核心是JavaScript的Math对象.代码如下: <!DOCTYPE html> <html lang="en"> <head> ...

  2. mysql如何让自增id从1开始设置方法

    有两种方式 第一种: 如果表中数据没有用.如果直接删除数据,自动增长ID还是不会从1开始的,可以利用“清空数据表”.这样自动增长ID也将会从1开始. 清空表的sql如下 truncate table ...

  3. 【0624作业】使用Scanner类输入并显示会员卡号

    package com.work0624; /** * 练习题 * 使用Scanner类输入并显示会员卡号 * @author L */ import java.util.Scanner; publi ...

  4. java基础——快速排序

    今天又把以前学的快速排序拿出来回忆一下 高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对“6 1 2 7 9 3 ...

  5. HTML5中Web存储

    HTML5 中web存储是一个比cookies更好的一个本地存储方式. 那么什么是HTML5存储呢? 使用HTML5可以在本地存储用户浏览的数据,HTML5技术没有出来之前是使用cookies进行本地 ...

  6. mysql grant 用户权限说明

    mysql grant 用户权限说明 Mysql 有多个个权限?经常记不住,今天总结一下,看后都能牢牢的记在心里啦!! 很明显总共28个权限:下面是具体的权限介绍:转载的,记录一下: 一.权限表 my ...

  7. 洛谷P2347 砝码称重

    题目 貌似是某年提高组签到题,六重循环零压力AC,差点怒踩std 但本蒟蒻决定写正解——多重背包,果断20分 原因是写错了状态转移方程...神才知道我咋过的样例和两个测试点 扯远了 多重背包 简单说一 ...

  8. 概括的描述一下Spring注册流程

    Spring经过大神们的构思.编码,日积月累而来,所以,对其代码的理解也不是一朝一夕就能快速完成的.源码学习是枯燥的,需要坚持!坚持!坚持!当然也需要技巧,第一遍学习的时候,不用关注全部细节,不重要的 ...

  9. 12Vim在系统配置中的应用示例

    Vim 在系统配置中的应用示例 1. 配置主机名称 为了便于咱局域网中查找某台特定的主机,后者对主机进行区分,除了要有IP地址外,还要为主机配置一个主机名,主机名之间可以通过这个类似于域名的名称来相互 ...

  10. vue 项目白屏解决方案

    在做的项目是使用 vue-cli 脚手架为基础的,只能使用微信浏览器打开的.在某次更新功能代码后,被反馈在一些手机上会出现白屏.经过一番探索,多管齐下解决了问题 白屏可能的原因: es6 代码没有被编 ...