PAT(Advanced level) 1002. A+B for Polynomials
来源:互联网 发布:mysql where和having 编辑:程序博客网 时间:2024/05/17 07:52
原题链接:http://pat.zju.edu.cn/contests/pat-a-practise/1002
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 Input2 1 2.4 0 3.22 2 1.5 1 0.5Sample Output
3 2 1.5 1 2.9 0 3.2
#include <stdio.h>#include <vector>#include <algorithm>using namespace std;struct Term{ int exp;//指数 double coe;//系数};const double threshold = 0.0000001;void PrintTerm(Term term){ printf(" %d %0.1lf", term.exp, term.coe);}int main(){ int k1, k2; vector<Term> line1; vector<Term> line2; vector<Term> sum; scanf("%d", &k1); for(int i=0; i<k1; ++i) { Term term; scanf("%d %lf", &term.exp, &term.coe); line1.push_back(term); } scanf("%d", &k2); for(int i=0; i<k2; ++i) { Term term; scanf("%d %lf", &term.exp, &term.coe); line2.push_back(term); } int i=0,j=0; for(; i<k1 && j<k2; ) { if(line1[i].exp == line2[j].exp) { Term term; term.exp = line1[i].exp; term.coe = line1[i].coe+line2[j].coe; if(term.coe > threshold || term.coe < -threshold) { sum.push_back(term); } ++i; ++j; } else if (line1[i].exp < line2[j].exp) { sum.push_back(line2[j]); ++j; } else { sum.push_back(line1[i]); ++i; }//end if }// end for while(i < k1) { sum.push_back(line1[i]); ++i; } while(j < k2) { sum.push_back(line2[j]); ++j; } printf("%d", sum.size()); for_each(sum.begin(), sum.end(), PrintTerm); printf("\n"); line1.clear(); line2.clear(); sum.clear(); return 0;}
- 【PAT Advanced Level】1002. A+B for Polynomials (25)
- PAT(Advanced level) 1002. A+B for Polynomials
- PAT Advanced Level 1002. A+B for Polynomials (25)(Java)
- PAT (Advanced Level) Practise 1002. A+B for Polynomials (25)
- 浙大 PAT Advanced level 1002. A+B for Polynomials
- PAT (Advanced Level) Practise 1002. A+B for Polynomials (25)
- 【PAT】【Advanced Level】1002. A+B for Polynomials (25)
- PAT (Advanced Level) Practise 1002. A+B for Polynomials (25)
- Pat(Advanced Level)Practice--1002(A+B For Polynomials)
- 【c++】PAT (Advanced Level) A+B for Polynomials (25)
- PAT Advanced Level 1002:A+B for Polynomials
- PAT (Advanced Level) Practise 1002 A+B for Polynomials (25)
- PAT (Advanced Level) Practise 1002A+B for Polynomials (25)
- PAT (Advanced Level) Practise1002. A+B for Polynomials (25)
- PAT (Advanced Level) Practise 1002 A+B for Polynomials
- PAT(Advanced level) 1002 A+B for Polynomials(25)
- 浙大PAT (Advanced Level) Practise 1002. A+B for Polynomials (25)
- PAT (Advanced Level) Practise —— 1002. A+B for Polynomials
- XML常用函数 .
- 项目处于艰难的时候
- 《Java程序员面试笔试宝典》之Java程序初始化的顺序是怎样的
- java-组合优于继承
- hiveserver添加到linux服务里,开机启动
- PAT(Advanced level) 1002. A+B for Polynomials
- 快播盗版惹祸:深圳拟开出2.6亿罚单
- java中嵌套浏览器
- 数据库模型设计——关系的实现
- thinkphp的配置
- 同步机构应遵循哪些基本准则?为什么?
- hibernate.cfg.xml配置文件
- CSS 基础
- cocos2dX action