
算法
ikebo
ikebo.cc
展开
-
求数组若排好序后相邻两数的最大差值 O(N)
给定一个数组,求如果排序之后,相邻两数的最大差值。要求时间复杂度O(N),且要求不能用非基于比较的排序。 此题用了桶排序的思想,但是没有真正排序。 假设数组中有N个数,则开一个N+1大小的数组表示有N+1个桶,确保最大差值中的两个数一定在不同的桶中。在数进桶的过程中记录每一个桶的最大值,最小值及是否进来过数。最后的最大差值为所...原创 2018-12-01 21:36:59 · 358 阅读 · 0 评论 -
第五届蓝桥杯决赛试题:Log大侠
题目:标题:Log大侠 atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称Log大侠。 一天,Log大侠的好友 drd 有一些整数序列需要变换,Log大侠正好施展法力... 变换的规则是: 对其某个子序列的每个整数变为: [log_2 (x) + 1] 其中 [] 表示向下取整,就是对每个数字求以2为底的对数,然后取下整。 例如对序...原创 2018-05-19 23:27:45 · 317 阅读 · 0 评论 -
蓝桥杯决赛试题:旗子换位
题目:棋子换位有n个棋子A,n个棋子B,在棋盘上排成一行。它们中间隔着一个空位,用“.”表示,比如:AAA.BBB现在需要所有的A棋子和B棋子交换位置。移动棋子的规则是:1. A棋子只能往右边移动,B棋子只能往左边移动。2. 每个棋子可以移动到相邻的空位。3. 每个棋子可以跳过相异的一个棋子落入空位(A跳过B或者B跳过A)。AAA.BBB 可以走法:移动A =...原创 2018-05-13 22:47:07 · 297 阅读 · 0 评论 -
第七届蓝桥杯决赛试题: 凑平方数
题目:凑平方数把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。比如:0, 36, 5948721再比如:10985247361, 25, 63907840, 4, 289, 15376等等...注意,0可以作为独立的数字,但不能作为多位数字的开始。分组时,必须用完所有的数字,不能重复,不能遗漏。如果不计较小组内数据的先后顺序,请问有多...原创 2018-05-13 21:48:46 · 277 阅读 · 0 评论 -
蓝桥杯决赛试题: 一步之遥
题目:一步之遥从昏迷中醒来,小明发现自己被关在X星球的废矿车里。矿车停在平直的废弃的轨道上。他的面前是两个按钮,分别写着“F”和“B”。小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。按F,会前进97米。按B会后退127米。透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。或许,通过多次操...原创 2018-05-13 17:20:09 · 875 阅读 · 0 评论 -
第八届蓝桥杯决赛试题:发现环
题目:标题:发现环小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。为了恢复正常传输。小明需要找到所有在环路...原创 2018-05-13 15:42:20 · 457 阅读 · 0 评论 -
第八届蓝桥杯决赛试题: 对局匹配
题目:标题:对局匹配小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, ... AN。小明想了解最多可能有多少名用户同时在线寻找对手,但是系...原创 2018-05-13 11:13:39 · 884 阅读 · 0 评论 -
第五届蓝桥杯决赛试题:生物芯片
题目:标题:生物芯片 X博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。 博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮。 这些光源的编号从 1 到 n,开始的时候所有光源都是关闭的。 博士计划在芯片上执行如下动作: 所有编号为2的倍数的光源操作一次,也就是把 2...原创 2018-05-19 09:20:02 · 441 阅读 · 0 评论 -
第五届蓝桥杯决赛试题: 出栈顺序
题目:标题:出栈次序 X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。 路边有个死胡同,只能容一辆车通过,是临时的检查站,如图【p1.png】所示。 X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。 如果车辆进入检查站和离开的次序可以任意交错。那么,该车...原创 2018-05-18 22:37:03 · 507 阅读 · 0 评论 -
第五届蓝桥杯决赛试题:年龄巧合
题目:标题:年龄巧合 小明和他的表弟一起去看电影,有人问他们的年龄。小明说:今年是我们的幸运年啊。我出生年份的四位数字加起来刚好是我的年龄。表弟的也是如此。已知今年是2014年,并且,小明说的年龄指的是周岁。 请推断并填写出小明的出生年份。 这是一个4位整数,请通过浏览器提交答案,不要填写任何多余的内容 (比如,他表弟的出生年份,或是他们的年龄等等)...原创 2018-05-18 20:03:10 · 444 阅读 · 0 评论 -
第六届蓝桥杯决赛试题:居民集会
题目:标题:居民集会蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di。每年,蓝桥村都要举行一次集会。今年,由于村里的人口太多,村委会决定要在4个地方举行集会,其中3个位于公路中间,1个位最公路的终点。已知每户家庭都会向着远离公路起点的方向去参加集会,参加集会的路程开销为家庭内的人数ti与距离的...原创 2018-05-18 11:47:38 · 2151 阅读 · 0 评论 -
第六届蓝桥杯决赛试题: 密文搜索
题目:标题:密文搜索福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。数据格式:输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024紧接着一行是一个整数n,表示...原创 2018-05-17 21:21:24 · 475 阅读 · 0 评论 -
第六届蓝桥杯决赛试题:关联账户
题目:标题:关联账户为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。如果两个账户间发生过转账,则认为有关联。如果a,b间有关联, b,c间有关联,则认为a,c间也有关联。对于调查范围内的n个账户(编号0到n-1),警方已知道m条因转账引起的直接关联。现在希望知道任意给定的两个账户,求出它们间是否有关联。有关联的输出1,没有关联输出0小明给出了如下的解决方案:...原创 2018-05-17 17:36:28 · 433 阅读 · 0 评论 -
蓝桥杯第八届决赛第三题:希尔伯特曲线
题目:希尔伯特曲线是以下一系列分形曲线 Hn 的极限。我们可以把 Hn 看作一条覆盖 2^n × 2^n 方格矩阵的曲线,曲线上一共有 2^n × 2^n 个顶点(包括左下角起点和右下角终点),恰好覆盖每个方格一次。[p1.png]Hn(n > 1)可以通过如下方法构造:1. 将 Hn-1 顺时针旋转90度放在左下角2. 将 Hn-1 逆时针旋转90度放在右下角3. 将2个...原创 2018-05-10 21:27:44 · 932 阅读 · 0 评论 -
第八届蓝桥杯C/C++B组国赛第一题:36进制
题目:标题:36进制对于16进制,我们使用字母A-F来表示10及以上的数字。如法炮制,一直用到字母Z,就可以表示36进制。36进制中,A表示10,Z表示35,AA表示370你能算出 MANY 表示的数字用10进制表示是多少吗?注意:你需要提交的是一个整数,不要填写任何多余的内容(比如:说明性文字)答案:1040254参考代码:#include <bits...原创 2018-04-30 21:51:24 · 789 阅读 · 0 评论 -
2014年第五届蓝桥杯C++B组第一题:啤酒和饮料
题目:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。思路:枚举代码:// 啤酒和饮料#include <bits/stdc++.h>using namespace std;// 啤酒x 饮料y x<y int main(){...原创 2018-03-29 16:36:41 · 507 阅读 · 0 评论 -
2015第六届蓝桥杯C++B组第十题:生命之树
题目:生命之树在X森林里,上帝创建了生命之树。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, ..., vk, b} 使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。在这个前提下,上帝要使得S中的点所对应的整...原创 2018-03-29 16:00:53 · 365 阅读 · 0 评论 -
快速幂取模_C++
转载至:https://www.cnblogs.com/hadilo/p/5719139.html快速幂先讨论无需取模的 当b为偶数时:ab=a(b/2)*2=(a2)b/2 当b为奇数时:ab=a*ab-1=a*(a2)(b-1)/2 如 28=(22)4 27=2*(22)3 所以,我们可以如此迭代下去 210=(22)5=(22)...转载 2018-03-27 23:37:20 · 293 阅读 · 0 评论 -
第七届蓝桥杯决赛试题:机器人塔
题目:机器人塔X星球的机器人表演拉拉队有两种服装,A和B。他们这次表演的是搭机器人塔。类似: A B B A B A A A B B B B B A BA B A B B A队内的组塔规则是: A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以...原创 2018-05-14 12:42:44 · 614 阅读 · 0 评论 -
蓝桥杯第四届决赛试题:猜灯谜
题目:标题:猜灯谜A 村的元宵节灯会上有一迷题:请猜谜 * 请猜谜 = 请边赏灯边猜小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字。请你用计算机按小明的思路算一下,然后提交“请猜谜”三个字所代表的整数即可。 请严格按照格式,通过浏览器提交答案。注意:只提交一个3位的整数,不要写其它附加内容,比如:说明性的文字。思路将每个字赋予一个变量(共6个),枚举(相同则...原创 2018-05-20 21:41:51 · 368 阅读 · 0 评论 -
第四届蓝桥杯决赛试题:连续奇数和
题目标题:连续奇数和小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。比如:2^3 = 8 = 3 + 53^3 = 27 = 7 + 9 + 114^3 = 64 = 1 + 3 + ... + 15虽然他没有想出怎么证明,但他想通过计算机进行验证。请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。请严格按...原创 2018-05-20 22:25:01 · 243 阅读 · 0 评论 -
Java中的比较器(自定义比较)
大部分语言中应该都有自定义比较的方法,如重载运算符,lambda表达式等。Java中是通过实现Comparator接口达到此目的。import java.util.Arrays;public class Comparator { public static class Student { public String name; public int i...原创 2018-12-01 20:00:19 · 1710 阅读 · 0 评论 -
排序(二)
快速排序&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;经典快排中,每次选择区间的最后一个数进行partition过程,这个跟数据状态是有关系的,如果原创 2018-11-27 19:38:24 · 169 阅读 · 0 评论 -
货币拼面值问题
现有n1+n2种面值的硬币,其中前n1种为普通币,可以取任意枚,后n2种为纪念币,每种最多只能取一枚,每种硬币有一个面值,问能用多少种方法拼出m的面值?m面值的货币,若分给n1的面值为n,则剩下的m-n面值让n2去拼,两种方法数相乘为此次分配的方法数。所以最终的方法数为f(0)*g(m-0) + f(1)*g(m-1) + … + f(m) * g(m-m)。 f 和 g 为两个动态规划问题。f...原创 2018-12-02 23:30:01 · 995 阅读 · 0 评论 -
荷兰国旗问题
给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。相当于快排的partition过程public class Flag { public static int[] flag(int[] arr, int l, int r, int p) ...原创 2018-11-26 21:30:05 · 197 阅读 · 0 评论 -
小和问题和逆序对问题
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数组中每个数的左边所有比这个数小的数累加起来,为这个数组的小和。当然可以每个数遍历所有左边的数,复杂度为O(N^2)。这是一个典型的归并排序的应用,整个数组的小和为左边组内的小和加右边组内的小和加整体组间的小和。代码// 归并排序import java.util.Arrays;public class原创 2018-11-26 13:29:25 · 329 阅读 · 0 评论 -
排序(一)
冒泡排序 O(N^2)每次将最大的数冒到最右边 public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 0) { return; } for (int e = arr.length-1; e >= 1; --...原创 2018-11-25 23:50:22 · 156 阅读 · 0 评论 -
对数器
我们写算法类笔试题或者竞赛题时,无法通过几个有限的样本确定写的完全正确。这个时候我们可以用对数器生成足够多的随机样本进行测试,如果都正确,基本可以确定我们写的正确,若出现错误,再分析错在哪里。例子 &原创 2018-11-25 21:20:27 · 218 阅读 · 0 评论 -
由两个栈组成的队列
题目 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)。解答 必须做到以下两点: 1. 如果stackPush 要往 stackPop 中压入数据,那么必须一次性把stackPush中的数据全部压入。 2. 如果stackPop 不为空,stackPush绝对不能向stackPop中压入数据。代码// 用两个栈组成的队列import ja...原创 2018-08-28 20:37:50 · 150 阅读 · 0 评论 -
设计一个有getMin功能的栈
题目 实现一个特殊的栈, 在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。要求 1. pop、push、getMin操作的时间复杂度都是O(1)。 2. 设计的栈类型可以使用现成的栈结构。解答// 设计一个有getMin功能的栈import java.util.*;class MyStack { private Stack<Integer&g...原创 2018-08-28 20:31:14 · 152 阅读 · 0 评论 -
第三届蓝桥杯决赛试题:DNA比对
题目DNA比对脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们假设,D...原创 2018-05-23 20:21:58 · 476 阅读 · 0 评论 -
第六届蓝桥杯决赛试题:积分之谜
题目:标题:积分之迷小明开了个网上商店,卖风铃。共有3个品牌:A,B,C。为了促销,每件商品都会返固定的积分。小明开业第一天收到了三笔订单:第一笔:3个A + 7个B + 1个C,共返积分:315第二笔:4个A + 10个B + 1个C,共返积分:420第三笔:A + B + C,共返积分....你能算出第三笔订单需要返积分多少吗?请提交该整数,不要填写任何多余的...原创 2018-05-16 16:49:48 · 442 阅读 · 0 评论 -
第七届蓝桥杯决赛试题:广场舞
题目:广场舞LQ市的市民广场是一个多边形,广场上铺满了大理石的地板砖。地板砖铺得方方正正,就像坐标轴纸一样。以某四块砖相接的点为原点,地板砖的两条边为两个正方向,一块砖的边长为横纵坐标的单位长度,则所有横纵坐标都为整数的点都是四块砖的交点(如果在广场内)。广场的砖单调无趣,却给跳广场舞的市民们提供了绝佳的参照物。每天傍晚,都会有大批市民前来跳舞。舞者每次都会选一块完整的砖...原创 2018-05-15 22:08:16 · 968 阅读 · 0 评论 -
第三届蓝桥杯决赛试题:数据压缩
题目数据压缩某工业监控设备不断发回采样数据。每个数据是一个整数(0到1000之间)。各个数据间用空白字符(空格,TAB或回车换行)分隔。这些数据以文本形式被存储在文件中。因为大多数时候,相邻的采样间隔数据是相同的,可以利用这个特征做数据的压缩存储。其方法是:对n(n&gt;1)个连续相同的数字只记录n和该数字本身;对m(m&gt;0)个连续不重复的数字,则记录 m*-1 和这些数字本...原创 2018-05-22 11:36:38 · 279 阅读 · 0 评论 -
第三届蓝桥杯决赛试题:星期几
题目星期几1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。那么,从建国到现在,有几次国庆节正好是星期日呢?只要答案,不限手段!可以用windows日历,windows计算器,Excel公式,。。。。。当然,也可以编程!不要求写出具体是哪些年,只要一个数目!千万不要提交源代码!思路用excel拉出1949年10月1到2012年10月1再格...原创 2018-05-22 10:51:56 · 256 阅读 · 0 评论 -
第四届蓝桥杯决赛试题:格子刷油漆
题目标题:格子刷油漆X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如图所示),现需要把这些格子刷上保护漆。你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!)比如:a d b c e f 就是合格的刷漆顺序。c e f d a b 是另一种合适的方案。当已知 N 时,求总的方案数。当N较大时,结果...原创 2018-05-21 23:21:18 · 415 阅读 · 2 评论 -
第四届蓝桥杯决赛试题:高僧斗法
题目标题:高僧斗法古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。(如图所示)两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过。两个小...原创 2018-05-21 19:40:20 · 446 阅读 · 0 评论 -
第四届蓝桥杯决赛试题:空白格式化
题目标题:空白格式化本次大赛采用了全自动机器测评系统。如果你的答案与标准答案相差了一个空格,很可能无法得分,所以要加倍谨慎! 但也不必过于惊慌。因为在有些情况下,测评系统会把你的答案进行“空白格式化”。其具体做法是:去掉所有首尾空白;中间的多个空白替换为一个空格。所谓空白指的是:空格、制表符、回车符。以下代码实现了这个功能。仔细阅读代码,填写缺失的部分。void f(char* f...原创 2018-05-20 22:44:48 · 343 阅读 · 0 评论 -
2015第六届蓝桥杯C++B组第八题:移动距离
题目:移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3...当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入为3个整数w m...原创 2018-03-27 22:24:53 · 363 阅读 · 0 评论 -
2015第六届蓝桥杯C++B组第七题:牌型种数
题目:牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。思路:1.一开始想的是直接求53张牌的全排列然后截取前13张排...原创 2018-03-27 21:50:25 · 917 阅读 · 0 评论