202312 青少年软件编程(C/C++)等级考试试卷(四级)电子学会真题

发布时间:2024年01月10日

2023年12月 青少年软件编程(C/C++)等级考试试卷(四级)电子学会真题

1.移动路线

题目描述

桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。

小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。 ??

对于1行1列的方格矩阵,蚂蚁原地移动,移动路线数为1;对于1行2列(或2行1列)的方格矩阵,蚂蚁只需一次向右(或向上)移动,移动路线数也为1……对于一个2行3列的方格矩阵,如下图所示:?
(2,1) - (2,2) - (2,3)
(1,1) - (1,2) - (1,3)
蚂蚁一共有3种移动路线:

路线1:(1,1) - (1,2) - (1,3) - (2,3)

路线2:(1,1) - (1,2) - (2,2) - (2,3)

路线3:(1,1) - (2,1) - (2,2) - (2,3)

输入描述

输入只有一行,包括两个整数m和n(0 < m+n ≤ 20),代表方格矩阵的行数和列数,m、n之间用空格隔开。

输出描述

输出若干行,每行一个移动路线,输出形式如样例所示。

(为保证输出一致,蚂蚁移动时先向右,再向上)

输入

2 3

输出

3

//蚂蚁共有3种移动路线:

路线1:(1,1) - (1,2) - (1,3) - (2,3)

路线2:(1,1) - (1,2) - (2,2) - (2,3)

路线3:(1,1) - (2,1) - (2,2) - (2,3)

2.公共子序列

我们称序列Z = < z1, z2, ..., zk >是序列X = < x1, x2, ..., xm >的子序列当且仅当存在 严格上升 的序列< i1, i2, ..., ik >,使得对j = 1, 2, ... ,k, 有xij = zj。比如Z = < a, b, f, c > 是X = < a, b, c, f, b, c >的子序列。?

现在给出两个序列X和Y,你的任务是找到X和Y的最大公共子序列,也就是说要找到一个最长的序列Z,使得Z既是X的子序列也是Y的子序列。

输入

输入包括多组测试数据。每组数据包括一行,给出两个长度不超过200的字符串,表示两个序列。两个字符串之间由若干个空格隔开。

输出

对每组输入数据,输出一行,给出两个序列的最大公共子序列的长度。

样例输入

abcfbc ? ? ? ? ? ? ? ?abfcab

programming ? ?contest?

abcd ? ? ? ? ? ? ? ? ? mnp

样例输出

4

2

0

答案和更多内容请查看网站:【试卷中心 -- C/C++ 四级】

网站链接?

青少年软件编程历年真题模拟题实时更新

================================================

文章来源:https://blog.csdn.net/No0d1es/article/details/135499926
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。