蓝桥杯题库中的算法训练试题 联系客服

发布时间 : 星期一 文章蓝桥杯题库中的算法训练试题更新完毕开始阅读8091ff71dd88d0d232d46a5a

3 1 2 1 3 1 0 0 2 0 3 输入格式 7 1 2 1 3 2 4 2 5 3 6 3 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 样例输出 输出格式

1.00000000000000000000 输出格式

2.00000000000000000000 输出格式

4.04081632653 样例说明

第一个样例中,入口总是1,出口总是2。

第二个样例的入口总是1且出口有2/5的概率是2,3/5的概率是3。对于出口为2和3的数学期望是相同的(对称的情况),第一步有0.5的概率直接到达出口,0.5的概率走错到另一个点(然后再走两步到终点)。所以数学期望等于2/5*(1*0.5+3*0.5)+3/5*(1*0.5+3*0.5) = 2。

数据规模和约定

33

20% 的数据n <= 100 50% 的数据n <= 1000 70% 的数据n <= 10000 100%的数据n <= 100000

41. 算法训练 Entertaining Geodetics

时间限制:2.0s 内存限制:256.0MB

问题描述

在此游戏中地图被分为了许多叫作Geo格的正方形方格,其中一些被涂上色,假设没有涂色的为透明色。

地图中还有些Geo符号,它们样子像不同颜色的金字塔(包括透明Geo符号)。每个Geo符号都坐落在Geo格上,每个Geo格上最多一个Geo符号。

Geo符号可以被消除。为了更好地理解Geo符号在消除时发生了什么,这里引入把刚消除的Geo符号放入的队列。

从队列中取出Geo符号,观察包含Geo符号的Geo格的颜色,如果它不是透明的且颜色不同于Geo符号,则把所有这个颜色的Geo格重新涂为Geo符号的颜色(透明的Geo符号则为透明色)。重涂色是在一个无限大的区域从那个有符号的Geo格子开始螺旋状进行的。

.

换句话说,我们选择所有需要重涂色的方格找到它们在以有符号格为中心的无限螺旋表格中所对应的数字。此后按数字的增加顺序我们对其重染色。

如果在重染色时遇到一个格子包含另一个Geo符号的情况则将Geo符号移出并放置在队列尾部。

当重染色结束后Geo符号彻底消失,并且队列中下一个Geo符号(如果有)将取出,重复此操作直至队列为空。 为了更好地理解请看一个例子。

你知道所有格子的颜色、所有符号的位置。计算出队列里符号彻底消失时所造成的重染色次数。

推荐使用I64d输出。 输入格式

34

第一行包含两个数n,m(1<=n,m<=300)—地图的高和宽。 接下来n行每行m个数—格子的颜色。

接下来n行每行m个数—对符号的描述,-1表示没有符号,否则数字代表符号的颜色。 所有颜色都是属于0到10^9的整数,0表示透明。

最后一行两个数x,y(1<=x<=n,1<=y<=m)—需要消除的Geo符号的行和列位置。行从上到下标记,列从左往右标记,从1开始。保证位置(x,y)包含一个符号。 输出格式

一行一个数—符号消除时重染色次数。 样例输入

5 5

9 0 1 1 0 0 0 3 2 0 1 1 1 3 0 1 1 1 3 0 0 1 2 0 3 -1 1 -1 3 -1 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 2 3 -1 -1 -1 -1 -1 -1 2 4 2 样例输出 35 样例说明

42. 算法训练特殊的数字四十

时间限制:1.0s 内存限制:256.0MB

特殊的数字四十

35

问题描述

1234是一个非常特殊的四位数,因为它的各位数之和为10,编程求所有这样的四位十进制数。 输出格式

按从小到大的顺序输出满足条件的四位十进制数。每个数字占用一行。

43. 算法训练 C*++ Calculations

时间限制:2.0s 内存限制:64.0MB

问题描述

C*++语言和C++语言非常相似,然而C*++的程序有时会出现意想不到的结果。比如像这样的算术表达式:

表达式=基本式 / 表达式+基本式 / 表达式-基本式 基本式=增量 / 系数*增量 增量=a++ / ++a 系数=0/1/2/……/1000

如―5*a++-3*++a+a++‖是合法的C*++表达式。

计算这样的表达式的值的方法:首先是每个基本式进行计算,然后按照正常的算术运算法则计算。如果一个基本式包含―a++‖,则先进行乘法运算再使变量a权值+1;如果一个基本式包含―++a‖,则先使变量a权值+1再进行乘法运算。

然而基本式可以按任意顺序计算,这就是为什么计算结果是完全无法预料的。 你的任务就是去找到最大的可能结果。

第一行,一个整数n,表示变量a的初始值。 第二行,一个合法的C*++表达式。

共一行,一个整数ans,表示最大可能结果。 输入格式 input 1: 1

5*a++-3*++a+a++ input 2: 3 a+++++a 输出格式 output 1: 11

36