题目链接:https://www.patest.cn/contests/pat-a-practise/1002
解题思路: 给两个多项式A和B,分别给出A和B的非零项指数和系数。求A+B,结果按指数递减方式输出指数和系数。该题目可以使用常用的hash+模拟的方式,用数组p[10001]表示多项式,下标为指数,元素值为指数对应的系数,很容易模拟多项式的加法解出。
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
int main(int argc, char const *argv[])
{
int k1,k2;
double p1[1001]={0};
double p2[1001]={0};
cin>>k1;
int e;
double c;
for(int i=0;i<k1;i++){
cin>>e>>c;
p1[e]=c;
}
cin>>k2;
for (int i=0;i<k2;i++)
{
cin>>e>>c;
p2[e]=c;
}
int count=0;
for(int i=0;i<=1000;i++){
p1[i]=p1[i]+p2[i];
if(p1[i]!=0)
count++;
}
cout<<count;
for(int i=1000;i>=0;i--){
if(p1[i]!=0)
printf(" %d %.1f",i,p1[i]);
}
return 0;
}