Time Limit: 3 second
Memory Limit: 2 MB

问题描述
     求两个一元多项式的和。输入多项式方式为:多项式项数、每项系数和指数,按指数从大到小的顺序输入。输出多项式方式为:多项式项数、每项系数和指数,按指数从大到小的顺序输出,合并后的系数如果为0,则不输出该项。(假设系数、指数均为整数)

Input

输入n+m+2行,第一行输入为第一个多项式的项数n,接下来的n行的是第一个多项式的系数和指数。接着是第二个多项式的项数m,接下来的m行是第二个多项式的系数和指数。(系数与指数用一个空格隔开)

Output

输出若干行,第一行是合并后多项式的项数K,接下来的K行是每行多项式的系数和指数。(系数与指数用一个空格隔开)

Sample Input

    4-5 63 21 18 058 96 6-3 25 1-20 0

Sample Output

    48 91 66 1-12 0

【题解】

设置一个bo,数组,用来存指数为x的系数bo[x]。输入x,y 令bo[y]+=x即可,要注意y可能为负数,所以要设置一个zbo 和fbo数组,表示y是整数和负数的情况。

最后从一个很大的数递减到0,遇到bo[i]!=0 就输出 bo[i] 和i即可。然后是负数 ,从1到一个很大的数进行输出 遇到bo[i]!=0,输出bo[i]和-i;

【代码】

#include <cstdio>
#include <cstring>int n,m,zbo[100000],fbo[100000],num = 0;void input_data()
{memset(zbo,0,sizeof(zbo));memset(fbo,0,sizeof(fbo));//memset函数用于初始化,头文件是cstringscanf("%d",&n); //输入第一个多项式的项数for (int i = 1;i <= n;i++) //依次输入n个项{int x,y;scanf("%d %d",&x,&y);if (y >= 0)zbo[y] += x;elsefbo[-y] += x;}scanf("%d",&m); //输入第二个多项式的项数for (int i = 1;i <= m;i++) //依次输入m个项{int xx,yy;scanf("%d %d",&xx,&yy);if (yy >= 0)zbo[yy] += xx;elsefbo[-yy] += xx;}
}void output_ans()
{for (int i = 99999;i >= 0;i--) //先要统计要输出的个数。if (zbo[i] != 0)num++;for (int i = 1;i <=99999;i++)if (fbo[i] != 0)num++;printf("%d\n",num);for (int i = 99999;i >= 0;i--) //输出完个数之后再输出具体的项。if (zbo[i] != 0)printf("%d %d\n",zbo[i],i);for (int i = 1;i <=99999;i++)if (fbo[i] != 0)printf("%d %d\n",fbo[i],-i);
}int main()
{//freopen("F:\\rush.txt","r",stdin);input_data();output_ans();return 0;
}

【代码】

【7003】【a203】合并多项式相关推荐

  1. hdu 5615 Jam's math problem(判断是否能合并多项式)

    方法一:由十字相乘相关理论我们能知道,如果要有p,k,q,m,那么首先要有解,所以b*b-4*a*c要>0,然而因为p,k,q,m是正整数,所以代表x1,x2都是有理数,有理数是什么鬼呢?就是解 ...

  2. 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后

    题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出. ...

  3. 「SymPy」符号运算(2) 各种形式输出、表达式的化简合并与展开

    目录 导言 输出 替换.演化 化简.合并与展开 化简 展开 合并 `cancel`函数 `apart`函数 `rewrite`函数 `expand_func`函数 导言 在前一篇文章中,我们简单学习了 ...

  4. apple设置中如果变全屏_如何从Apple Batterygate结算中获得25

    apple设置中如果变全屏 The class-action lawsuit was sparked after Apple admitted in December 2017 it had been ...

  5. Matlab化简符号表达式

    化简符号表达式计算机毕竟还是挺笨的, 经过一系列的符号计算后, 得到的结果可能只有它自己才能看懂, Matlab提供大量函数以用于符号表达式的化简. collect(f): 函数用途是合并多项式中相同 ...

  6. 北邮工程计算-知识点索引--十安辰

    第二讲 1.数据类型 整数. 浮点数与精度函数realmin.realmax .eps. intmax和intmin 字符型 逻辑型 complex() 复数的虚部和实部imag().real() 复 ...

  7. 计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文

    计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文 版权所有使用者请联系我 刘创 QQ:903188593 2.2.2 Phong光照模型 事实上对于漫反射的物体表面,使用Lambert ...

  8. Maple学习笔记——数学计算与数据处理

    Maple学习笔记--数学计算与数据处理 数据计算 多项式相关: 求解方程.不等式 矩阵计算.线性代数: 微积分 多变量和向量微积分 优化 概率与统计 数据处理 导入数据 数据计算 多项式相关: 1. ...

  9. 数据结构--一元多项式

    函数功能说明: Void InitList(PolyNode &L) /初始化多项式单链表*/ Int GetLength(PolyNode*L) /求多项式单链表的长度/ PolyNode ...

最新文章

  1. linux快捷键 赋值,2_Shell语言———bash的快捷键、变量声明、引用变量及变量替换...
  2. java里面怎么添加表约束_mysql给表增加约束条件
  3. VC字体安装相关方法总结
  4. ios预支付系统 java_支付系统的预发布环境如何搭建
  5. oracle1537,dataguard 出现ORA-16136错误
  6. HDU - 2825 Wireless Password (AC自动机 + 状压dp)
  7. VS2012 打包部署程序
  8. 十八、PHP框架Laravel学习笔记——模型的增删改
  9. 工作3年和工作7年的程序员到底差在哪里?
  10. 漫步最优化八——梯度信息
  11. 高斯消元(二)——竞赛题目中异或和的高斯消元
  12. hua图软件 mac_细数Mac上那些好用且免费的软件(四)
  13. 手机如何看python文件大小_如何安全地检查上传文件的大小?(How to check size of uploaded file safely in bottlepy?)...
  14. oracle基础教程(第四天)数据库管理
  15. 漳州帷博计算机科技,福建省漳州市芗城中学高二6月月考语文试题 含答案(11页)-原创力文档...
  16. 实体操盘手开发分销商城小程序商业模式解析
  17. 缓存加速-----Squid-访问控制列表日志分析反向代理
  18. ViewData与ViewBag比较
  19. 玩转Lenovo Idea pad 的音效功能
  20. 把Safari当chrome用(插件篇)

热门文章

  1. HTML+CSS网页制作:一个简易美观的登录页面实例代码
  2. iReport 4.1 报表制作,子报表,实例解析
  3. [转]java工程师成神之路
  4. matlab实现ad转换器,宝宝作业-基于Matlab流水线AD转换器行为级模型建模与仿真
  5. 数据挖掘导论课后习题答案-第一章
  6. java web进阶篇(八) Ajax(阿贾克斯)开发技术
  7. 今年最诱人的10大高校年夜饭,第一名是...
  8. 五月中级前端面试报告
  9. 造个计算机--1、设计运算器
  10. JavaFX战旗类游戏开发 第三课 创建游戏角色