1002 A+B for Polynomials

水题~

最好是把得到所有的幂放在一个数组里,然后排序去重,不过这题的幂最大只有1000,所以这么写了。

一开始没看到保留一位小数,wa了一发,难受。

#include <iostream>
#include <cstring>
#include <string>
#include <sstream>
#include <string>
#include <cstdio>
#include <algorithm>
#include <vector>
#define maxn 1005
#define INF 0x3f3f3f3f
#define EPS 1e-6
#define pi acos(-1.0)
using namespace std;
typedef long long ll;
int k,n;
int b[maxn];
double x;
double a[maxn];
int main()
{
    memset(a,0,sizeof(a));
    int maxx=0;
    cin>>k;
    for(int i=0;i<k;i++)
    {
        cin>>n>>x;
        a[n]=x;
        if(n>maxx)
            maxx=n;
    }
    cin>>k;
    for(int i=0;i<k;i++)
    {
        cin>>n>>x;
        a[n]+=x;
        if(n>maxx)
            maxx=n;
    }
    int ans=0;
    for(int i=maxx;i>=0;i--)
    {
        if(a[i])
        {
            b[ans]=i;
            ans++;
        }
    }
    cout<<ans;
    for(int i=0;i<ans;i++)
    {
        printf(" %d %.1lf",b[i],a[b[i]]);
    }
    cout<<endl;
    return 0;
}
View Code

 

posted on 2018-11-26 20:47  FTA_Macro  阅读(140)  评论(0编辑  收藏  举报

导航