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

输入格式:

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

输出格式:

输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

输入样例:

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
数据测试补充:
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 1 2 1 0
2 1 2 -1 0
输出:
1 4 -1 0
2 2
2 -1000 1000 1000 0
2 1000 1000 -1000 0
输出:
-1000000 2000 2000000 1000 -1000000 0
0 0
0
1 999 1000
输出:
0 0
999 1000 上面的丝足测试数据都过了的话,代码应该就能过了。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <map>
#include <algorithm> using namespace std; int n, m;
struct node
{
int x, z;
}a[200], b[200]; int main()
{
int i, j;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d %d", &a[i].x, &a[i].z );
}
scanf("%d", &m);
for(i=0; i<m; i++){
scanf("%d %d", &b[i].x, &b[i].z );
}
map<int,int>q;
int cur;
for(i=0; i<n; i++){
for(j=0; j<m; j++){
cur=a[i].z+b[j].z;
q[cur]+=(a[i].x*b[j].x);
}
}
int cnt=0;
bool flag=false;
map<int, int>::reverse_iterator it=q.rbegin();
for(it; it!=q.rend(); it++){
if(flag==false){
if(it->second==0) continue;
else{
flag=true;
printf("%d %d", it->second, it->first); cnt++;
}
}else{
if(it->second==0) continue;
else printf(" %d %d", it->second, it->first); cnt++;
}
}
if(cnt==0){
printf("0 0");
}printf("\n"); map<int, int>h;
for(i=0; i<n; i++){
h[a[i].z]+=a[i].x;
}
for(j=0; j<m; j++){
h[b[j].z]+=b[j].x;
}
flag=false;
it=h.rbegin(); cnt=0;
for(it; it!=h.rend(); it++){
if(flag==false){
if(it->second==0) continue;
else{
flag=true;
printf("%d %d", it->second, it->first); cnt++;
}
}else{
if(it->second==0) continue;
else printf(" %d %d", it->second, it->first); cnt++;
}
}
if(cnt==0){
printf("0 0");//没有合法输出的情况下,就输出0 0;
}printf("\n"); return 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. 3-04. 一元多项式的乘法与加法运算(20)(ZJU_PAT 结构体)

    题目链接:http://pat.zju.edu.cn/contests/ds/3-04 设计函数分别求两个一元多项式的乘积与和. 输入格式说明: 输入分2行.每行分别先给出多项式非零项的个数.再以指数 ...

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

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

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

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

随机推荐

  1. 【BZOJ2730】[HNOI2012]矿场搭建 Tarjan

    [BZOJ2730][HNOI2012]矿场搭建 Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处. ...

  2. 160816、webpack 入门指南

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

  3. 导出网页中的table到excel

    导出网页中的table到excel的两种简便方法: 1. 纯 JavaScript 方法,缺点只支持IE浏览器 var elTable = document.getElementById(" ...

  4. outlook撤回已发送邮件

    官方教程参考: https://support.office.com/zh-cn/article/%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E5%90%8E%E6%92 ...

  5. 记录--Gson、json转实体类、类转json

    需要导入Gson jar包 最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson ...

  6. Linux 常用命令缩写及对应的

    0.项目名: Linux -- LINUs' uniX (开个玩笑不是这样的,别当真) GNU -- Gnu is Not Unix1.目录名: /boot:顾名思义 /root :同上 /run:同 ...

  7. mac 识别压缩文件类型

    file -z b.zip

  8. Python 是怎么火起来的?

    Python 之父 Guido 正在设计 Python 语言,结果家里突然潜入一条大蟒蛇,一番激烈斗争,大蟒蛇把 Guido 叔生吞进肚,并洋洋自得:So Who is Guido Van Rossu ...

  9. ExtJS4 给同一个formpanel不同的url

    formpanel能够这样使用,api上的样例: var panel=Ext.create('Ext.form.Panel', { title: 'Simple Form', bodyPadding: ...

  10. jQuery Mobile panel的相关属性

    参考网站:http://www.lampweb.org/jquerymobile/19/64.html 面板 data-role="panel" 在一个 jQuery Mobile ...