pat 甲级 1009 Product of Polynomials

和1002很像
嗯,所以又看了一下午才把题看懂
就是第一行的每一项都与第二行的每一项指数相加,系数相乘
然后再和1002一样指数相同的合并

题目做起来很简单
第一遍做完,样例也顺利过了
提交

10分,,,
emmmm

这次的0都有注意啊,,
输出格式也没错,,

没啥能改的地方啊???
网上的代码有的都和我一样啊就是数组名字不一样
难道是数组大小的事?

1000->2000
没过,,而且变成了 5分,那就说明是数组大小的问题了
照着AC的代码改成2005

就,,过了

尝试了几次后,发现只要数组大小开过2000就可以,2001可以AC

还在努力思考原因。。(明白了,因为自己太傻了——1002指数不涉及运算,1009不是呀,最大1000,加1000,,,)
果然还是多用STL最方便吗。。

#include <cstdio>
#include <iostream>

using namespace std;

int n, m, sum;
double arr[2005], brr[2005], crr[2005];

int main(){

    cin >> n;
    for(int i=0; i<n; i++){
        int t;
        double h;
        cin >> t >> h;
        arr[t] = h;
        brr[t] = 1;

    }

    cin >> m;
    for(int j=0; j<m; j++){
        int t;
        double h;
        cin >> t >> h;
        for(int k=0; k<2005; ++k){
            if(brr[k]==1)   crr[t+k] += h*arr[k];           
        }       
    }

    /*for(int l=0; l<2005; l++){
        if(crr[l]!=0) sum++;
    }*/

    for(int i = 2004; i>=0; --i){
        if(crr[i]!=0) sum++;
    }

    cout << sum;
    for(int o=2005; o>=0; --o){
        if(crr[o]!=0) printf(" %d %.1f", o, crr[o]);
    }

    return 0;
} 

偷懒了,,还是要坚持住啊咸鱼,,,

猜你喜欢

转载自blog.csdn.net/mdzz_z/article/details/81267588