题目链接:http://pat.zju.edu.cn/contests/ds/3-04

设计函数分别求两个一元多项式的乘积与和。

输入格式说明:

输入分2行。每行分别先给出多项式非零项的个数。再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式说明:

输出分2行。分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。

数字间以空格分隔,但结尾不能有多余空格。

例子输入与输出:

序号 输入 输出
1
4 3 4 -5 2  6 1  -2 0
3 5 20 -7 4 3 1
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
2
2 1 2 1 0
2 1 2 -1 0
1 4 -1 0
2 2
3
2 -1000 1000 1000 0
2 1000 1000 -1000 0
-1000000 2000 2000000 1000 -1000000 0
0 0
4
0
1 999 1000
0 0
999 1000

代码例如以下:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn = 5217;
typedef struct
{
int x, y;
int m, s;
} node;
node num1[maxn], num2[maxn];
node ans_mul[maxn], ans_sum[maxn];
int max1, max2, maxx; void mult()
{
for(int i = 0; i <= max1; i++)
{
for(int j = 0; j <= max2; j++)
{
ans_mul[i+j].m += num1[i].x*num2[j].x;
}
}
} void sum()
{
for(int i = 0; i <= maxx; i++)
{
ans_sum[i].s += num1[i].x + num2[i].x;
}
}
int main()
{
int n, m;
scanf("%d",&n);
int t1, t2;
max1 = max2 = 0;
for(int i = 0; i < n; i++)
{
scanf("%d %d",&t1,&t2);
if(t2 > max1)
max1 = t2;
num1[t2].x = t1;
}
scanf("%d",&m);
for(int i = 0; i < m; i++)
{
scanf("%d%d",&t1,&t2);
if(t2 > max2)
max2 = t2;
num2[t2].x = t1;
}
int mul_max = max1+max2;
maxx = max(max1, max2);
mult();
sum();
int flag = 0;
for(int i = mul_max; i >= 0; i--)
{
if(!ans_mul[i].m)
{
continue;
}
if(!flag)
{
printf("%d %d",ans_mul[i].m,i);
flag = 1;
}
else
{
printf(" %d %d",ans_mul[i].m,i);
}
}
if(!flag)
{
printf("0 0");
}
printf("\n");
flag = 0;
for(int i = maxx; i >= 0; i--)
{
if(!ans_sum[i].s)
{
continue;
}
if(!flag)
{
printf("%d %d",ans_sum[i].s,i);
flag = 1;
}
else
{
printf(" %d %d",ans_sum[i].s,i);
}
}
if(!flag)
{
printf("0 0");
}
printf("\n");
return 0;
}

3-04. 一元多项式的乘法与加法运算(20)(ZJU_PAT 结构体)的更多相关文章

  1. PTA 02-线性结构2 一元多项式的乘法与加法运算 (20分)

    原题地址 https://pta.patest.cn/pta/test/15/exam/4/question/710 5-2 一元多项式的乘法与加法运算   (20分) 设计函数分别求两个一元多项式的 ...

  2. PTA数据结构 习题3.6 一元多项式的乘法与加法运算 (20分)

    一元多项式的乘法与加法运算 https://pintia.cn/problem-sets/434/problems/5865 设计函数分别求两个一元多项式的乘积与和. 时间限制:200 ms 内存限制 ...

  3. PAT 02-线性结构2 一元多项式的乘法与加法运算 (20分)

    设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. ...

  4. 线性结构2 一元多项式的乘法与加法运算 【STL】

    02-线性结构2 一元多项式的乘法与加法运算(20 分) 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和 ...

  5. 线性结构CT 02-线性结构1 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. ...

  6. 浙江大学PAT上机题解析之3-04. 一元多项式的乘法与加法运算

    设计函数分别求两个一元多项式的乘积与和. 输入格式说明: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分 ...

  7. 一元多项式的乘法与加法运算 【STL-map哈希-map反向迭代器遍历 + 零多项式】

    设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. ...

  8. 一元多项式的乘法与加法运算(C语言)

    输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式: 输出分2行,分别以指数递降方 ...

  9. 小白专场-多项式乘法与加法运算-c语言实现

    目录 一.题意理解 二.求解思路 三.多项式的表示 3.1 数组 3.2 链表 四.程序框架搭建 五.如何读入多项式 六.如何将两个多项式相加 七.如何将两个多项式相乘 八.如何将多项式输出 一.题意 ...

随机推荐

  1. 为什么使用LUT比GAL 节省资源

    为什么使用LUT比GAL 节省资源 A[1:0]    B[1:0]     实现一个比较器,如果A=B输出1 否则输出0 传统的GAL 需要 24= 16个存储单元(ROM)来存储结果数据,实现方法 ...

  2. JAVA ANDROID SOCKET通信检测(SERVER)连接是否断开

    Pre 解决思路 代码后记: 客户端app上的部分代码 调用: 服务器上: 客户端判断服务器是否还活着代码: PRE 在利用socket写通讯程序的时候,想检测服务器是否还活着. 从网上找了很多资料, ...

  3. char 与 varchar 不同,造成的麻烦

    就是因为他们的不同,造成我一小天的麻烦,就是取得不了正确的结果,后来经原同事提醒,终于找到了原因,但是还有点没看懂,所以又找了个网上的经验,贴进来,以备以后再查. --简单的存储过程 create p ...

  4. RadioButtonList控件

    在这里只写,绑定数据库数据的RadioButtonList控件: 一: 首先,先在数据库中建立一张表: 1 CREATE TABLE KK 2 ( 3 id INT, 4 [name] VARCHAR ...

  5. ACM比赛(第三次D)

    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Description 有三户人家共拥有 ...

  6. linux学习过程中所需要看的一些书籍

    入门类 一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用.鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这 ...

  7. typedef 总结

    其实在正儿八经学C语言的时候typedef用的不是很多,记得书上对它的介绍只是一笔带过.的确它的用法是很简单,但这不代表在使用的过程中不会出错,今天来个彻底的总结. 作用:用来建立新的数据类型名.(注 ...

  8. 03-IOSCore - XML及解析、Plist

    一.XML 可扩展标记语言 是什么?是一段有规范的字符串, 用在哪?用在任何地方 语法: * 结点Node <结点名 属性名="属性值"> 结点内容 </结点名& ...

  9. linux查看接口连接状态

    ethtool # ethtool em1 Settings for em1: Supported ports: [ TP ] Supported link modes: 10baseT/Half 1 ...

  10. SRAM,SDRAM,网卡

    SRAM,SDRAM,网卡有地址总线.由cpu统一编址. NAND flash没有地址总线. 因 此有这两者寻址方式不同. 字符设备驱动程序的框架. 驱动程序 1.有led.read,led.writ ...