当前位置: 代码迷 >> 综合 >> PAT A1009 Product of Polynomials (25分)
  详细解决方案

PAT A1009 Product of Polynomials (25分)

热度:51   发布时间:2024-02-09 16:40:02.0

文章目录

  • 题目描述
  • 知识点
  • 我的实现
    • 码前思考
    • 代码实现
    • 码后反思

题目描述

在这里插入图片描述

知识点

模拟题

我的实现

码前思考

就是模拟题了

代码实现

//使用后结构体来办事 
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 2e3+10;
struct node{int exp;double coef;node(){}node(int e,double c):exp(e),coef(c){} 
}; vector<node> first;
double res[maxn];int main(){//freopen("input.txt","r",stdin);fill(res,res+maxn,0.0);int k;int exp;double coef;//第一次输入scanf("%d",&k);for(int i=0;i<k;i++){scanf("%d %lf",&exp,&coef);first.push_back(node(exp,coef));}//第二次输入scanf("%d",&k);for(int i=0;i<k;i++){scanf("%d %lf",&exp,&coef);for(int j=0;j<first.size();j++){res[exp+first[j].exp] += coef*first[j].coef;}}int cnt = 0;for(int i=0;i<maxn;i++){if(res[i]!=0.0){cnt++;}}printf("%d",cnt);for(int i=maxn-1;i>=0;i--){if(res[i]!=0.0){printf(" %d %.1f",i,res[i]);}} return 0;
} 

码后反思

  1. 需要注意的是,两个指数相加之后可能会大于1000,所以数组的范围应该是大于2000的,我第一次提交的时候最后两个测试用例出现了段错误,就是因为这个原因。
  相关解决方案