【7003】&&【a203】合并多项式
2024-09-06 15:03:06
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;
}
【代码】
最新文章
- In-Memory:内存数据库
- 在c#中的TextBox响应回车键发出“咚”的一声解决方法
- VMware 设备VMnet0 上的网桥暂时关闭。此虚拟机无法与主机或网格中的其他计算机通信【转】
- matlab GUI封装exe文件
- 如何在命令行模式下查看Python帮助文档---dir、help、__doc__
- linux如何隐藏和显示所有窗口?
- Appium移动自动化测试(一)--安装Appium
- [转]史上最全的MSSQL复习笔记
- RHEL 6.4中解决xx用户不在sudoers列表,此事将被报告的问题
- NetMQ(ZeroMQ)Client =>; Server =>; Client 模式的实现
- android Permission 访问权限许可
- def语句常见错误
- cdr格式文件抠图
- 怎么写jquery插件
- [SDOI2009]Bill的挑战
- My MES思路图
- jdbc、jpa、spring data jpa、hibernate、mybatis之间的关系及区别
- 「SCOI2016」萌萌哒 解题报告
- Springboot 使用PageHelper分页插件实现分页
- 洛谷P1265 公路修建(Prim)
热门文章
- web服务器与tomcat
- 用JS实线放大镜的效果
- Codeforces 13C
- MSSQL 为db创建user
- 什么是PV UV
- Leetcode830.Positions of Large Groups较大分组的位置
- php代码在模板页的活用
- 使用spring jpa 时,利用nativeQuery,获取数据,无需新建实体,按照别名返回Json数据
- 控制台输入聊天记录 输出到文件中保存 Day20
- HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.register_jsp