第 1 题 编程题

多项式相加(2023.12)

我们经常遇到两多项式相加的情况, 在这里, 我们就需要用程序来模拟实现把两个多项式相加到一起。 首先, 我们会有两个多项式,每个多项式是独立的一行, 每个多项式由系数、 幂数这样的多个整数对来表示。

如多项式 2x20- x17 5x9- 7x7 16x5 10x4 22x2- 15

对应的表达式为: 2 20 -1 17 5 9 - 7 7 16 5 10 4 22 2 -15 0。

为了标记每行多项式的结束, 在表达式后面加上了一个幂数为负数的整数对。

同时输入表达式的幂数大小顺序是随机的。我们需要做的就是把所给的两个多项式加起来。

时间限制: 1000

内存限制: 65536

输入

输入包括多行。 第一行整数 n,表示有多少组的多项式需要求和。 (1

输出

输出包括 n 行, 每行为 1 组多项式相加的结果。 在每一行的输出结果中, 多项式的每一项用“[x y]” 形式的字符串表示, x 是该项的系数、 y 是该项的幂数。 要求按照每一项的幂从高到低排列, 即先输出幂数高的项、 再输出幂数低的项。 系数为零的项不要输出。


样例输入

2-1 17 2 20 5 9 -7 7 10 4 22 2 -15 0 16 5 0 -12 19 7 7 3 17 4 4 15 10 -10 5 13 2 -7 0 8 -8-1 17 2 23 22 2 6 8 -4 7 -18 0 1 5 21 4 0 -112 7 -7 5 3 17 23 4 15 10 -10 5 13 5 2 19 9 -7

样例输出

[ 2 20 ] [ 2 19 ] [ 2 17 ] [ 15 10 ] [ 5 9 ] [ 6 5 ] [ 14 4 ] [ 35 2 ] [ -22 0 ][ 2 23 ] [ 2 19 ] [ 2 17 ] [ 15 10 ] [ 6 8 ] [ 8 7 ] [ -3 5 ] [ 44 4 ] [ 22 2 ] [ -18 0 ]


提示

第一组样例数据的第二行末尾的 8 -8, 因为幂次-8 为负数, 所以这一行数据结束, 8 -8 不要参与计算。

第 2 题 编程题

队列和栈(2023.12)

队列和栈是两种重要的数据结构,它们具有push k和pop操作。push k是将数字k加入到队列或栈中,pop则是从队列和栈取一个数出来。队列和栈的区别在于取数的位置是不同的。

队列是先进先出的:把队列看成横向的一个通道,则push k是将k放到队列的最右边,而pop则是从队列的最左边取出一个数。

栈是后进先出的:把栈也看成横向的一个通道,则push k是将k放到栈的最右边,而pop也是从栈的最右边取出一个数。

假设队列和栈当前从左至右都含有1和2两个数,则执行push 5和pop操作示例图如下:

push 5 pop

队列 1 2 -------> 1 2 5 ------> 2 5

push 5 pop

栈 1 2 -------> 1 2 5 ------> 1 2

现在,假设队列和栈都是空的。给定一系列push k和pop操作之后,输出队列和栈中存的数字。若队列或栈已经空了,仍然接收到pop操作,则输出error。

时间限制:1000

内存限制:65536

输入

第一行为m,表示有m组测试输入,m<100。 每组第一行为n,表示下列有n行push k或pop操作。(n<150) 接下来n行,每行是push k或者pop,其中k是一个整数。 (输入保证同时在队列或栈中的数不会超过100个)

输出

对每组测试数据输出两行,正常情况下,第一行是队列中从左到右存的数字,第二行是栈中从左到右存的数字。若操作过程中队列或栈已空仍然收到pop,则输出error。输出应该共2*m行。


样例输入

24push 1push 3poppush 51pop

样例输出

3 51 5errorerror
第 3 题 编程题
第 4 题 编程题
点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论