蓝桥杯
文章平均质量分 67
蓝桥杯比赛期间学习遇到的题
麦片老板
Please show the code
展开
-
字符串算法:字典树trie
字典树trie 1. 原理 先看一张图 看不懂很正常 如果你看懂了,那么原理就可以直接跳过 比如说我们现在有几个字符串 in inn int to ten tea 我们想知道te是哪几个字符串的前缀? 这个时候我们显然可以一个一个去比较,但是这样的效率有点低,我们也可以想到用字符串hash去比较,但是这样的效率还是有点低 这个时候字典树就排上用场了 字典树 说白了 就是一个字典 和我们平时查英语的字典一样,比如我们现在要去查一个单词hello 我们首先第一个动作一定是放到 H 开头的那一页 再去放到原创 2021-07-10 22:32:33 · 160 阅读 · 0 评论 -
字符串hash
字符串hash 原理 我的理解是:这是一种很玄学的字符串匹配算法 比如我们现在有一个字符串:str = "abcde" 通过一个hash函数,我们假设为int mhash() [为什么要写成mhash?因为hash()在库函数已经有了] 那我们得到的str的哈希值str_hash = mhash(str) 接下来是mhash的实现代码:听说这种是比较不会发生冲突的了 typedef unsigned long long ull; // 因为hash值一般都很大,所以我们采用ull ull mhash(cha原创 2021-07-02 23:02:44 · 151 阅读 · 0 评论 -
字符串算法: AC自动机
AC自动机 AC自动机 = KMP + Trie 原理 如果你还没看过kmp和trie,那我建议你先去看一下,因为这样会比较容易理解 本文图片和灵感均来自https://blog.csdn.net/bestsort/article/details/82947639 我在学AC自动机时,是直接先看题的,这里有一道入门模板题,我们先来看一下 入门模板题 这道题的意思是说:给你多个模式串S ,然后再给你一个文本串T,让你在T中找有多少个不同的模式串出现过 比如: 模式串有4个:ash,shex,sha,bcd 文原创 2021-06-26 23:11:11 · 173 阅读 · 0 评论 -
IDA* 与 A* 与uva1343
IDA* 和 A* 故事背景 练习紫书的过程中遇到了一个问题:uva1343 经过日日夜夜的思考,决定去学习一下IDA*扩充自己的知识库 本文参考了大佬的博客:A与IDA的奇妙之旅 原理 对IDA*我个人理解是:有方向的暴力搜索 【乍一想,有一点点人工智能的感觉哈哈哈】 很神奇,搜索的路径大概会是这样的,具体可以参考A与IDA的奇妙之旅 可以认为是,你在走一步之前多了个判断:判断走哪里会比较近,先从近的走 ,这样就可以减少搜索的次数 有个函数是这样的 F(x)=G(x)+H(x) F(x)=G(x)+H(x原创 2020-08-26 14:29:30 · 139 阅读 · 0 评论 -
蓝桥杯算法训练:网络流裸题
题目描述:网络流裸题 问题描述 一个有向图,求1到N的最大流 输入格式 第一行N M,表示点数与边数 接下来M行每行s t c表示一条从s到t的容量为c的边 输出格式 一个数最大流量 样例输入 6 10 1 2 4 1 3 8 2 3 4 2 4 4 2 5 1 3 4 2 3 5 2 4 6 7 5 4 6 5 6 3 样例输出 思路 看一下大佬讲的网络流吧,看完就懂...原创 2020-08-18 20:05:00 · 1600 阅读 · 1 评论 -
2017蓝桥杯A组第7题:正则问题
题目描述:正则问题 考虑一种简单的正则表达式: 只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如((xx|xxx)x|(x|xx))xx能接受的最长字符串是: xxxxxx,长度是6。 输入: 一个由x()|组成的正则表达式。输入长度不超过100,保证合法。 输出: 这个正则表达式能接受的最长字符串的长度。 例如, 输入: ((...原创 2020-07-29 22:27:00 · 169 阅读 · 0 评论 -
2017蓝桥杯A组第8题:包子凑数
题目描述:包子凑数 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。 每种蒸笼都有非常多笼,可以认为是无限笼。 每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。 比如一共有3种蒸笼,分别能放3、4和5个包子。 当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个...原创 2020-07-30 15:52:00 · 340 阅读 · 0 评论 -
2018蓝桥杯B组第3题:乘积尾零
题目描述:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 14...原创 2020-08-03 22:10:00 · 107 阅读 · 0 评论 -
2018蓝桥杯B组第4题:测试次数
题目描述:测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。 x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。 如果手机从第7层扔下去没摔...原创 2020-08-04 21:12:00 · 187 阅读 · 0 评论 -
2018蓝桥杯B组第6题:递增三元组
题目描述:递增三元组 给定三个整数数组 A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN], 请你统计有多少个三元组(i, j, k) 满足: 1 <= i, j, k <= N Ai < Bj < Ck 【输入格式】 第一行包含一个整数N。 第二行包含N个整数A1, A2, ......原创 2020-08-10 22:10:00 · 276 阅读 · 0 评论 -
蓝桥杯2017-A组第4题:方块分割
题目描述:方格风格 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 注意:旋转对称的属于同一种分割法。 如图所示 思路 去中间点为起点(3,3),分四个方向(上下左右),走一步就在mp数组中标记为1,在与起点中心对称的点也标记为1(例如:[2,2]与[4,4]),当走到x==0||x==6||y==0||y==6的时候结束,ans++。 最终结果为ans/...原创 2020-07-29 19:27:00 · 242 阅读 · 0 评论 -
2018蓝桥杯B组第8题:日志统计
题目描述:日志统计 小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。 具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)...原创 2020-08-11 00:05:00 · 229 阅读 · 0 评论 -
2019蓝桥杯B组第2题:年号字串
题目描述:年号字串 思路 printf("%c",m+'A'-1); 代码中的-1需要好好思考一下,这里我们可以用代入法,当m=1时输出为A。 最终答案为反过来的打印结果 代码 #include<iostream> #include<cstdio> using namespace std; int main(){ int n = 2019; ...原创 2020-08-11 18:41:00 · 149 阅读 · 0 评论 -
2019蓝桥杯B组第5题:迷宫
题目描述:迷宫 数据如下: 01010101001011001001010110010110100100001000101010 00001000100000101010010000100000001001100110100101 01111011010010001000001101001011100011000000010000 010000000010101000110100001...原创 2020-08-11 21:02:00 · 116 阅读 · 0 评论 -
2019蓝桥杯B组第8题:等差数列
题目描述:等差数列 思路 一开始拿到这道题的时候,我的第一个想法是这样的: 先给数组排序,计算两数之间最大的差值d 从d开始判断是否满足为数列的公差,不满足就d--再继续判断,直到满足,如果d一直不满足到1,则结束,假设最小的公差为1. 如果公差为0,即该等差数列的每一项都相同,则答案为数组长度。 但是,我还是太天真了,太傻了,看了网上大佬的题解后,深感羞愧不如。 这道题其实考的...原创 2020-08-13 16:18:00 · 326 阅读 · 0 评论 -
2019蓝桥杯B组第9题:后缀表达式
题目描述:后缀表达式 思路 挺离谱的一道题,巨坑巨坑。 刚开始拿到这道题的时候,以为是道水题,减掉最小的,加最大的就可以了,后来发现我太天真了,真的太天真了。。。 看这道题前,我们先来了解一下什么是后缀表达式: 我们日常生活中常用的是中缀表达式:1+1+2=4,除了中缀表达式之外还有前缀表达式和后缀表达式 前缀表达式就是把+-*/ 都放在前面 比如 ++1 1 2 = 4 后缀表达...原创 2020-08-13 19:06:00 · 293 阅读 · 5 评论 -
2019蓝桥杯B组第10题:灵能传输
题目描述:灵能传输 思路 挺难的一道贪心题,思路很难很难想。 主要时用了 前缀和+贪心 的思想 具体的我就不讨论了,大家看视频吧 还是老师讲的比较清楚 代码 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namesp...原创 2020-08-13 22:24:00 · 361 阅读 · 0 评论 -
蓝桥杯 算法训练:Yaroslav and Algorithm
题目描述:网络流裸题 问题描述 (这道题的数据和SPJ已完工,尽情来虐吧!) Yaroslav喜欢算法。我们将描述一个他最喜欢的算法。 1.这个算法接受一个字符串作为输入。我们设这个输入字符串为a。 2.这个算法由一些命令组成。i号命令的形式为"s[i]>>w[i]"或"s[i]<>w[i]",其中s[i]和w[i]是长度不超过7的字符串(可以为空...原创 2020-08-18 21:37:00 · 949 阅读 · 0 评论 -
蓝桥杯:基础练习 矩形面积交
基础练习 矩形面积交 时间限制:1.0s 内存限制:512.0MB 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。 输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。 输出格式 输出仅包含一个实...原创 2020-01-25 22:33:26 · 133 阅读 · 0 评论 -
蓝桥杯基础练习 数的读法
基础练习 数的读法 时间限制:1.0s 内存限制:512.0MB 问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。 比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。 所以,他迫切地需要一个系统,然后当他输入12 3456 7009...原创 2020-01-23 17:30:38 · 189 阅读 · 0 评论 -
蓝桥杯----基础练习 Huffuman树
备战蓝桥杯中,做练习的时候想着写一下博客记录一下自己的思路 有些思路可能不太好,有路过的大神请指点一下 问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将...原创 2020-01-05 23:38:40 · 131 阅读 · 0 评论