1002. A+B for Polynomials (25)

来源:互联网 发布:办公软件应用2003 编辑:程序博客网 时间:2024/06/06 00:31

一开始提交好几次 都是 前几个测试点 正确

后来 知道 忘了考虑 相加后 系数为0的情况 时 更新 CX(计数器)的值··

#include<iostream>#include<cstring>#include<iomanip>using namespace std;int main(){    double ans[1001];    int Expo;    double Coef;    int K;    while( cin>>K )    {        int CX=0;        memset( ans, 0, sizeof(ans) );        for( int i=0; i<K; i++ )        {                cin>>Expo>>Coef;                ans[Expo]=Coef;        }        cin>>K;        for( int i=0; i<K; i++ )        {                 cin>>Expo>>Coef;                 ans[Expo]+=Coef;        }        for( int i=0; i<1001; i++ )               if( ans[i]!=0 )                    CX++;        cout<<CX;        for( int i=1000; i>=0; i-- )            if( ans[i]!=0 )                cout<<" "<<i<<" "<<fixed<<setprecision(1)<<ans[i];        cout<<endl;    }    return 0;}

9月4号 版 思路同上 有优化

#include<iostream>#include<cstdio>#include<cstring>#include<iomanip>#include<map>#include<vector>#include<string>#include<cmath>#include<algorithm>using namespace std;const int Max=1<<30;int main(){    vector<double>a(1001,0);    vector<pair<int,double> >b;    double K, n1, n2;    cin>>K;    while(K--)    {        cin>>n1>>n2;        a[n1]=n2;    }    cin>>K;    while(K--)    {        cin>>n1>>n2;        a[n1]+=n2;    }    int flag=0;    for(int i=1000; i>=0; i--)    {           if(a[i]!=0)           {                b.push_back(make_pair(i,a[i]));                flag++;           }    }    cout<<flag;    for(int i=0; i<b.size(); i++)        cout<<" "<<b[i].first<<" "<<fixed<<setprecision(1)<<b[i].second;    cout<<endl;    return 0;}


0 0
原创粉丝点击