noj 1006 多项式乘法

多项式乘法
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 677 测试通过 : 332

比赛描述

线性表是一种最简单、最基本,也是最常用的数据结构,其用途十分广泛,例如,用带表头结点的单链表求解一元整系数多项式加法和乘法运算。

现给两个一元整系数多项式,请求解两者的乘积。

输入

两组数据,每一组代表一个一元整系数多项式,有多行组成,其中每一行给出多项式每一项的系数和指数,这些行按指数递减次序排序。每一组结束行输入为0 -1

输出

三组数据,前两组为一元整系数多项式,最后一组为两个多项式的乘积。

一元整系数多项式输出形式如下:

(1)多项式项4x输出为4X

(2)多项式项4x2输出为4X^2

(3)第一项系数为正数时,加号不要输出

(4)除常系数项外,项系数为1不显式输出,-1输出为-

例如,4x3- x2+x-1正确输出形式为4X^3-X^2+X-1,错误输出形式为 +4X^3-1X^2+1X-1

样例输入

3 14
-8 8
6 2
2 0
0 -1
2 10
4 8
-6 2
0 -1

样例输出

3X^14-8X^8+6X^2+2
2X^10+4X^8-6X^2
6X^24+12X^22-16X^18-50X^16+12X^12+76X^10+8X^8-36X^4-12X^2

提示

该题属于南京邮电大学《数据结构A》实验一中的内容,验证的是课本代码,请慎重解答。

题目来源

CHENZ

题目链接:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1006

解题思路:前半部分同noj 1005。多项式相乘的结果用另外两个数组存储,两层for循环保证每一个小项相乘得到新的小项,系数相乘,指数相加,例如系数为x,指数为y,用数组cy[]=y 存储指数,用数组c[y]=x存储指数y对应的系数x,因此在小项相乘的同时,用 c[y]+=x 可以很方便地合并同类项。然后对cy[]从大到小排序去重,最后输出即可。

代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=10000+5;
int ax[maxn],ay[maxn];
int bx[maxn],by[maxn];
int cy[maxn],c[maxn];
int main(void)
{
    int x,y;
    bool q=false;
    memset(ax,0,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值