Time Limit: 3 second

Memory Limit: 2 MB

问题描述

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

Input

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

Output

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

Sample Input

    4
-5 6
3 2
1 1
8 0
5
8 9
6 6
-3 2
5 1
-20 0

Sample Output

    4
8 9
1 6
6 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函数用于初始化,头文件是cstring
scanf("%d",&n); //输入第一个多项式的项数
for (int i = 1;i <= n;i++) //依次输入n个项
{
int x,y;
scanf("%d %d",&x,&y);
if (y >= 0)
zbo[y] += x;
else
fbo[-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;
else
fbo[-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;
}

【代码】

最新文章

  1. In-Memory:内存数据库
  2. 在c#中的TextBox响应回车键发出“咚”的一声解决方法
  3. VMware 设备VMnet0 上的网桥暂时关闭。此虚拟机无法与主机或网格中的其他计算机通信【转】
  4. matlab GUI封装exe文件
  5. 如何在命令行模式下查看Python帮助文档---dir、help、__doc__
  6. linux如何隐藏和显示所有窗口?
  7. Appium移动自动化测试(一)--安装Appium
  8. [转]史上最全的MSSQL复习笔记
  9. RHEL 6.4中解决xx用户不在sudoers列表,此事将被报告的问题
  10. NetMQ(ZeroMQ)Client =&gt; Server =&gt; Client 模式的实现
  11. android Permission 访问权限许可
  12. def语句常见错误
  13. cdr格式文件抠图
  14. 怎么写jquery插件
  15. [SDOI2009]Bill的挑战
  16. My MES思路图
  17. jdbc、jpa、spring data jpa、hibernate、mybatis之间的关系及区别
  18. 「SCOI2016」萌萌哒 解题报告
  19. Springboot 使用PageHelper分页插件实现分页
  20. 洛谷P1265 公路修建(Prim)

热门文章

  1. web服务器与tomcat
  2. 用JS实线放大镜的效果
  3. Codeforces 13C
  4. MSSQL 为db创建user
  5. 什么是PV UV
  6. Leetcode830.Positions of Large Groups较大分组的位置
  7. php代码在模板页的活用
  8. 使用spring jpa 时,利用nativeQuery,获取数据,无需新建实体,按照别名返回Json数据
  9. 控制台输入聊天记录 输出到文件中保存 Day20
  10. HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.register_jsp