1002. A+B for Polynomials (25)
来源:互联网 发布:手机淘宝到货退款流程 编辑:程序博客网 时间:2024/06/05 05:35
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
天天进步:
1、#include &cout<
#include <iostream>using namespace std;#include<iomanip>struct Node{ double coef; int exp;};int sum(Node* firstList,int M,Node* secondList,int N,Node* sumList);int main(){ int M,N; cin>>M; Node *firstList=new Node[M]; for(int i=0;i<M;i++) { double xiShu; int zhiShu; cin>>zhiShu>>xiShu; firstList[i].coef=xiShu; firstList[i].exp=zhiShu; } cin.clear();//重置错误输入 cin.sync();//清空缓冲区 cin>>N; Node *secondList=new Node[N]; for(int i=0;i<N;i++) { double xiShu; int zhiShu; cin>>zhiShu>>xiShu; secondList[i].coef=xiShu; secondList[i].exp=zhiShu; } Node *sumList=new Node[M+N]; int num=sum(firstList,M,secondList,N,sumList); delete firstList; delete secondList; cout<<num; for(int i=0;i<num;i++) { cout<<" "<<sumList[i].exp<<" "<<fixed<<setprecision(1)<<sumList[i].coef; } delete sumList; return 0;}int sum(Node* firstList,int M,Node* secondList,int N,Node* sumList){ int i=0,j=0,k=0,t=0; while(i<M&&j<N) { if(firstList[i].exp>secondList[j].exp) { sumList[k].exp=firstList[i].exp; sumList[k].coef=firstList[i].coef; i++; } else if(firstList[i].exp<secondList[j].exp) { sumList[k].exp=secondList[j].exp; sumList[k].coef=secondList[j].coef; j++; } else { sumList[k].exp=firstList[i].exp; t=firstList[i].coef+secondList[j].coef; if(t!=0) sumList[k].coef=firstList[i].coef+secondList[j].coef; else k--; i++; j++; } k++; } while(j<N) { sumList[k].exp=secondList[j].exp; sumList[k].coef=secondList[j].coef; j++; k++; } while(i<M) { sumList[k].exp=firstList[i].exp; sumList[k].coef=firstList[i].coef; i++; k++; } return k;}
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 【PAT】1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- PAT 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- [PAT]1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- pat 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- PAT 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- 1002. A+B for Polynomials (25)
- Getting Started with JPA and Eclipse
- redhat-7.0下使用qemu-img批量搭建虚拟机
- hdu5414 CRB and String(构造,模拟)
- scala实现设计模式之迭代器模式
- Java
- 1002. A+B for Polynomials (25)
- VB+DX游戏编程教程 第一话:初识DX
- Mysql 优化
- leetcode--------------Length of Last Word
- hibernate第一个例子,保存一个对象
- 位向量法排序
- LeetCode_DP_Unique Paths
- 一些优秀的实时开发社区
- 如何配置 MongoDB 副本集