首页 > 其他 > 详细

1002. A+B for Polynomials

时间:2015-03-26 06:46:50      阅读:151      评论:0      收藏:0      [点我收藏+]

注释部分的代码可以通过所有测试点。。。没有想明白为什么自己写的代码第一个测试点一直过不了。。。

#include <iostream>
#include <vector>
using namespace std;

int main(void){
    int k1,k2;
    //double a1[22],a2[22];
    vector<double> num;
    vector<double> a1;
    cin>>k1;
    for(int j=0;j<k1*2;j++){
        double tmp;
        cin>>tmp;
        a1.push_back(tmp);
    }
    cin>>k2;
    for(int j=0;j<k2*2;j++){
        double tmp;
        cin>>tmp;
        a1.push_back(tmp);
    }
    int max=0;
    for(int j=0;j<a1.size();j+=2){
        if(a1[j]>max){
            max=a1[j];
        }
    }
    double ans[max+1];
    int flag=0,cnt=0;
    for(int j=0;j<=max;j++){
        flag=0;
        for(int k=0;k<a1.size();k+=2){
            if(a1[k]==j && a1[k+1]!=0.0){
                ans[j]+=a1[k+1];
                flag=1;
            }
        }
        if(flag==0 || ans[j]==0.0){
            ans[j]=-1;
        }else{
            cnt++;
        }
    }
    cout<<cnt;
    for(int k=max;k>=0;k--){
       if(ans[k]>=0){
            cout<<" ";
           int b=(int)ans[k];
           if(b==ans[k]) cout<<k<<" "<<b<<".0";
            else cout<<k<<" "<<ans[k];
        }
    }
    return 0;
}





/*
 #include<iostream>
 using namespace std;
 
 double res[1000];
 int ans[1000];
 
 int main(){
 
 int K,exp;
 double coe;
 int a=2;
 while(a--){
 cin>>K;
 while(K--){
 cin>>exp>>coe;
 res[exp]+=coe;
 }
 }
 K=0;
 for(int i=1000;i>=0;--i)
 if(res[i]!=0)
 ans[K++]=i;
 
 
 cout<<K;
 for(int i=0;i<K;++i)
 printf(" %d %.1f",ans[i],res[ans[i]]);
 cout<<endl;
 
 return 0;
 }
*/

 

1002. A+B for Polynomials

原文:http://www.cnblogs.com/mqacm/p/4367575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!