蓝桥杯题库中的算法训练试题_0_第1页
蓝桥杯题库中的算法训练试题_0_第2页
蓝桥杯题库中的算法训练试题_0_第3页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、蓝桥杯题库中的算法训练试题 1. 算法训练 p1103 时间限制:1.0s 内存限制:256.0mb 编程实现两个复数的运算。设有两个复数和,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运算符号(+,-,*,/) a b c d. 输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。 输入: - 2.5 3.6 1.5 4.9 输出: 1.00+-1.30i 2. 算法训练 lift and throw

2、时间限制:3.0s 内存限制:256.0mb 问题描述 给定一条标有整点(1, 2, 3, .)的射线. 定义两个点之间的距离为其下标之差的绝对值. laharl, etna, flonne一开始在这条射线上不同的三个点, 他们希望其中某个人能够到达下标最大的点. 每个角色只能进行下面的3种操作, 且每种操作不能每人不能进行超过一次. 1.移动一定的距离 2.把另一个角色高举过头 3.将举在头上的角色扔出一段距离 每个角色有一个movement range参数, 他们只能移动到没有人的位置, 并且起点和终点的距离不超过movement range. 如果角色a和另一个角色b距离为1, 并且角色

3、b没有被别的角色举起, 那么a就能举起b. 同时, b会移动到a的位置,b原来所占的位置变为没有人的位置. 被举起的角色不能进行任何操作, 举起别人的角色不能移动.同时, 每个角色还有一个throwing range参数, 即他能把举起的角色扔出的最远的距离. 注意, 一个角色只能被扔到没有别的角色占据的位置. 我们认为一个角色举起另一个同样举起一个角色的角色是允许的. 这种情况下会出现3个人在同一个位置的情况. 根据前面的描述, 这种情况下上面的两个角色不能进行任何操作, 而最下面的角色可以同时扔出上面的两个角色. 你的任务是计算这些角色能够到达的位置的最大下标, 即最大的数字x, 使得存在

4、一个角色能够到达x. 输入格式 1 输入共三行, 分别为laharl, etna, floone的信息. 每一行有且仅有3个整数, 描述对应角色的初始位置, movement range, throwing range. 数据保证3个角色的初始位置两两不相同且所有的数字都在1到10之间. 输出格式 仅有1个整数, 即laharl, etna, flonne之一能到达的最大距离. 样例输入 9 3 3 4 3 1 2 3 3 样例输出 15 样例说明 一开始laharl在位置9, etna在位置4, flonne在位置2. 首先, laharl移动到6. 然后flonne移动到位置5并且举起et

5、na. laharl举起flonne将其扔到位置9. flonne把etna扔到位置12. etna移动到位置15. 3. 算法训练 multithreading 时间限制:1.0s 内存限制:256.0mb 问题描述 现有如下一个算法: repeat ni times yi := y y := yi+1 end repeat 令n1为你需要算加法的第一个数字,n2为第二个,.nn为第n个数字(n为需要算加法的数字个数), 并令y初始值为0,先令i=1运行这个算法(如上所示,重复ni次),l 2 顺序归并起来。) 举个例子,n1= 2 ,n2=1, w=1.一种可行的运算顺序是2 1 1 1

6、1 2,数字为几表示运行第几个算法的下一条语句(你可以看到1出现了4次,是因为n1=2即循环两次,而每次循环里面有两条语句,所以2*2=4次) 执行0条语句过后 执行1条过后(y2=y) 执行2条过后(y1=y) 执行3条过后(y=y1+1) 执行4条过后(y1=y) 执行5条过后(y=y1+1) 执行6条过后(y=y2+1) y值 0 0 0 1 1 2 1 y1 值 0 0 0 0 1 1 1 y2 值 0 0 0 0 0 0 0 可以看到,最后y值变成了1,也就完成了我们的任务。 输入格式 第一行你会得到用空格分开的两个整数n(1 第一行您应该输出yes(若能以某种顺序使得这个算法得出w

7、的值) 或no。 如果第一行是no,接下来就不用继续输出了。 如果是yes, 请在第2行输出2*sigma(ni)个用空格隔开的数,表示任意一种满足条件的运算顺序。 样例输入 1 10 11 样例输出 no 样例输入 3 2 3 4 4 样例输出 yes 1 1 2 1 2 2 2 2 2 1 2 1 1 1 1 2 样例输入 3 6 1 2 3 样例输出 yes 1 1 2 2 2 2 3 3 3 3 3 3 数据规模和约定 对于30%的数据,n 对于100%的数据,n4. 算法训练 tricky and clever password 时间限制:2.0s 内存限制:256.0mb 问题描述

8、 在年轻的时候,我们故事中的英雄国王 copa他的私人数据并不是完全安全地隐蔽。对他来说是,这不可接受的。因此,他发明了一种密码,好记又难以破解。后来,他才知道这种密码是一个长度为奇数的回文串。 copa 害怕忘记密码,所以他决定把密码写在一张纸上。他发现这样保存密码不安全,于是他决定按下述方法加密密码:他选定一个整数 x ,保证 x 不小于 0 ,且 2x 严格小于串长度。然后他把密码分成 3 段,最前面的 x 个字符为一段,最后面的 x 个字符为一段,剩余的字符为一段。不妨把这三段依次称之为 prefix, suffix, middle 。显然, middle 的长度为一个大于 0 的奇数

9、,且 prefix 、 suffix 的长度相等。他加密后的密码即为 a + prefix + b + middle + c + suffix ,其中 a 、 b 、 c 是三个由 copa 选定的字符串,且都有可能为空, + 表示字符串相连。 许多年过去了。copa 昨天找到了当年写下加密后字符串的那张纸。但是,copa 把原密码、a、b、c 都忘了。现在,他请你找一个尽量长的密码,使得这个密码有可能被当年的 copa 发明、加密并写下。 输入格式 输入包含一个只含有小写拉丁字母的字符串,长度在 1 到 10 之内。 输出格式 4 第一行包含一个整数 k ,表示你找到的原密码分成的 3 个部分中有多少个非空字符串。显然 k in 1, 3 。接下来 k 行,每行 2 个用空格分开的整数 x_i l_i ,表示这一部分的起始位置和长度。要求输出的 x_i 递增。 起始位置 x_i 应该在 1 到加密后的字符串长度之间。 l_i 必须是正整数,因为你只要输出非空部分的信息。 middle 的长度必须为奇数。 如果有多组答案,任意一组即可。提示:你要最大化的是输出的 l_i 的总和,而不是 k 。 样例输入 abacaba 样例输出 1 1 7 样例输入 axbya 样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论