3\13 蓝桥杯 第一次练习

第一题

7-2 difficult string (15 分)
如果一个字符串包含两个相邻的重复子串,则称它是“最容易的串”,其他串称为“困难的串”。 BB、ABCDACABCAB、ABCDABCD都是容易的串,而D、DC、ABDAB、CBABCBA都是困难的串。

例如,当L=3时,前7个困难的串分别是A、AB、ABA、ABAC、ABACA、ABACAB、ABACABA。 输入保证答案不超过80个字符。

输入格式:

输入一对正整数n和L

输出格式:

输出由前L个字符组成的、字典序第n小的困难的串

输入样例:

7 3
30 3

输出样例:
在这里给出相应的输出。例如:

ABACABA
ABACABCACBABCABACABCACBACABA


第二题

抽象
有一个 n*m 的棋盘 (1<= n,m <=101) ,在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步

帮助
马在棋盘上运动一步的坐标变化可以用一个二维数组表示,如:

int MoveTo[8][2]= { {1,2},{1,-2},{2,1},{2,-1},{-1,2},{-1,-2},{-2,1},{-2,-1} };

注意输出格式

输入格式:
一行四个数据,棋盘的大小 n,m 和马的坐标 x,y 。

输出格式:
一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)
行末均无空格。

输入样例:

3 3 1 1

输出样例:
在这里给出相应的输出。例如:

0 3 2
3 -1 1
2 1 4


第三题

抽象
汉诺塔由三根柱子(分别用数字 1、2、3 表示)和n个大小互不相同的盘子组成。
一开始n个盘子都摞在柱子1上,大的在下面,小的在上面,形成了一个塔状的锥形体。
对汉诺塔的一次合法的操作是指:每次只能移动一个盘子,从一根柱子的最上层拿一个盘子放到另一根柱子的最上层,同时要保证被移动的盘子一定放在比它更大的盘子上面(如果移动到空柱子上就不需要满足这个要求)。
要求将1柱子上的盘子搬运到3柱子上,并满足大小顺序条件. 现在,请你输出n个盘子时的搬运过程,以及所花的最少的步数step.

输入格式:
一个正整数n, (1<=n<=12),表示初始时1柱子上的盘子数量

输出格式:
第1~step行,每行三个整数 i x y 表示将 第i个盘子 从x柱子 移到y柱子
数字间用一个空格区分。行末均无空格。 例如:

i1 x1 y1
i2 x2 y2

第step+1行 为空
第step+2行 输出一个整数step

输入样例:
在这里给出一组输入。例如:

2

输出样例:
在这里给出相应的输出。例如:

1 1 2
2 1 3
1 2 3
3


第四题

输入格式:
输入第一行有两个整数,分别代表小圆钱包里的钱 t(t<=1000)和代表可供选择的食物种类 m(m<=100)。(每种食物可以重复选择)

第 2 到第 (m + 1)行,每行两个整数,第 (i + 1)行的整数ai,bi 分别表示第 i 种食物的价格和该食物的热量。(ai,bi<=100)

输出格式:
输出一行,这一行只包含一个整数,表示在有限的钱内,可以买到的食物的最大总热量。

输入样例:
在这里给出一组输入。例如:

70 3
71 100
69 1
1 2

输出样例:
在这里给出相应的输出。例如:

140


第五题

输入格式:
共2行。 第一行1个整数,表示共有N颗蹦蹦炸弹需要拦截。 第2行N个整数(个数≤100000),表示每个蹦蹦炸弹的高度。

输出格式:
2行,每行一个整数,第一个数字表示这套系统最多能拦截多少蹦蹦炸弹,第二个数字表示如果要拦截所有蹦蹦炸弹最少要配备多少套弩炮。

输入样例:
在这里给出一组输入。例如:

8
389 207 155 300 299 170 158 65

输出样例:
在这里给出相应的输出。例如:

6
2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值