logo资料库

蓝桥杯18年最全算法训练试题181道(含vip试题).pdf

第1页 / 共142页
第2页 / 共142页
第3页 / 共142页
第4页 / 共142页
第5页 / 共142页
第6页 / 共142页
第7页 / 共142页
第8页 / 共142页
资料共142页,剩余部分请下载后查看
ALGO-1 区间k大数查询 排序 查找
ALGO-2 最大最小公倍数 贪心
ALGO-3 K好数 动态规划
ALGO-4 结点选择 树形动态规划
ALGO-5 最短路
ALGO-6 安慰奶牛 最小生成树
ALGO-7 逆序对 平衡二叉树
ALGO-8 操作格子 线段树
ALGO-9 摆动序列 动态规划
ALGO-10 集合运算 数组 排序
ALGO-11 瓷砖铺放 递归
ALGO-12 幂方分解 递归
ALGO-13 拦截导弹 贪心 动态规划
ALGO-14 回文数 模拟 高精度计算
ALGO-15 旅行家的预算 贪心
ALGO-16 进制转换
ALGO-17 乘积最大 动态规划
ALGO-18 单词接龙 搜索
ALGO-19 方格取数 动态规划
ALGO-20 求先序排列 递归
ALGO-21 装箱问题 动态规划
ALGO-22 数的划分 动态规划
ALGO-23 一元三次方程求解 解方程
ALGO-24 统计单词个数 字符串
ALGO-25 Car的旅行路线 最短路
ALGO-26 麦森数 二分 高精度
ALGO-27 FBI树 树 遍历
ALGO-28 星际交流 排列生成算法
ALGO-29 校门外的树 区间处理
ALGO-30 入学考试 0/1背包 动态规划
ALGO-31 开心的金明 01背包 动态规划
ALGO-32 JAM计数法 组合生成
ALGO-33 数列 数学 进制
ALGO-34 纪念品分组 贪心 排序
ALGO-35 传球游戏 动态规划
ALGO-36 传纸条 动态规划
ALGO-37 Hankson的趣味题 数论
ALGO-38 接水问题 模拟
ALGO-39 数组排序去重
ALGO-40 会议中心 APIO 2009
ALGO-42 送分啦
ALGO-43 A+B Problem 试用 C++ 入门
ALGO-44 采油区域 APIO 2009
ALGO-45 调和数列问题
ALGO-46 Hanoi问题
ALGO-47 蜜蜂飞舞
ALGO-48 关联矩阵
ALGO-49 寻找数组中最大值
ALGO-50 数组查找及替换
ALGO-51 Torry的困惑(基本型)
ALGO-52 排列问题
ALGO-53 最小乘积(基本型)
ALGO-54 简单加法(基本型)
ALGO-55 矩阵加法
ALGO-56 邮票
ALGO-57 删除多余括号
ALGO-58 字串逆序
ALGO-59 快速排序
ALGO-60 矩阵乘方
ALGO-61 奇偶判断
ALGO-62 平方计算
ALGO-63 乘法表
ALGO-64 大小写判断
ALGO-65 比赛安排
ALGO-66 字符串编辑
ALGO-67 最大值与最小值的计算 数组,逻辑表达式
ALGO-68 判定数字 if-else结构,数据有效性检查
ALGO-69 字符串逆序 字符串
ALGO-70 最长字符串 字符串 循环
ALGO-71 比较字符串 字符串
ALGO-72 成绩的等级输出 分支结构
ALGO-73 统计字符次数 字符串 循环
ALGO-74 连接字符串 算法 字符串基本操作
ALGO-75 筛选号码 算法 枚举、标记数组
ALGO-76 十进制数转八进制数
ALGO-77 斜率计算
ALGO-78 确定元音字母位置
ALGO-79 删除数组零元素
ALGO-80 整数平均值
ALGO-81 动态数组使用
ALGO-82 输出米字形
ALGO-83 阶乘 循环语句 数学知识
ALGO-84 大小写转换
ALGO-85 进制转换 字符操作 数学知识
ALGO-86 矩阵乘法
ALGO-87 字串统计
ALGO-88 字串统计
ALGO-89 字符删除 数组运算
ALGO-90 出现次数最多的整数
ALGO-91 Anagrams问题 数组运算 字符操作
ALGO-92前缀表达式字符操作 数学知识
ALGO-93 反置数 函数设计 字符操作
ALGO-94 新生舞会
ALGO-95 2的次幂表示
ALGO-96 Hello World!
ALGO-97 排序 循环语句
ALGO-98 数位分离 字符操作 循环语句
ALGO-99 薪水计算 逻辑判断 数学知识
ALGO-100 整除问题 循环语句 数学知识
ALGO-101 图形显示 循环语句
ALGO-102 数对 循环语句 数学知识
ALGO-103 完数 循环语句 数学知识
ALGO-104 阿尔法乘积 字符操作
ALGO-105 黑色星期五 逻辑判断 取余运算 循环语句
ALGO-106 判定字符位置
ALGO-107 链表数据求和操作
ALGO-108 最大体积
ALGO-109 貌似化学 g背包
ALGO-110 字符串的展开 字符串的处理 模拟
ALGO-111 明明的随机数NOIP2006 排序
ALGO-112 暗恋 二维数组
ALGO-113 数的统计
ALGO-114 黑白无常
ALGO-115 和为T 搜索
ALGO-116 最大的算式 动态规划 资源分配类型
ALGO-117 友好数 函数
ALGO-118 连续正整数的和 枚举
ALGO-119 寂寞的数 循环 数学知识
ALGO-120 学做菜 循环
ALGO-121 猴子分苹果 递推
ALGO-122 未名湖边的烦恼 递归 递推
ALGO-123 A+B problem
ALGO-124 数字三角形
ALGO-125 王、后传说 回溯 递归
ALGO-126 水仙花 判断 分支
ALGO-127 C*++ Calculations字符串处理 贪心
ALGO-128 Cowboys
ALGO-129 特殊的数字四十 测试
ALGO-130 Entertaining Geodetics 模拟
ALGO-131 Beaver's Calculator 排序、贪心
ALGO-132 Maze 树上统计
ALGO-133 Tricky and Clever Password 字符串 KMP
ALGO-134 Don't fear, DravDe is kind dp,hash
ALGO-135 Multithreading 构造
ALGO-136 Buying Sets 二分图匹配 最大流
ALGO-137 Lift and Throw 搜索
ALGO-138 Representative Sampling 字典树 DP
ALGO-139 s01串 递归
ALGO-140 P1101 提货单
ALGO-141 P1102
ALGO-142 P1103 复数运算
ALGO-143 字符串变换 字符串
ALGO-145 打印下述图形
ALGO-146 找公倍数
ALGO-147水仙花数
ALGO-148 最小公倍数
ALGO-149 求指数
ALGO-150 递归求二项式系数值
ALGO-151 递归求二进制表示位数
ALGO-152 求完数
ALGO-155 C++ CH08 01
ALGO-156 表达式计算
ALGO-157 阶乘末尾 循环
ALGO-158 sign函数 if分支
ALGO-159 P0103 大写转小写
ALGO-160 P0104求方程的实数根
ALGO-162 Airport Configuration 模拟
ALGO-163 Матрёшка 动态规划
ALGO-164 Pollution Solution 计算几何
ALGO-165 Glenbow Museum 数学
ALGO-166 Infiltration枚举 图论
ALGO-167 Consanguine Calculations 枚举
ALGO-168 Crossing the Desert 数论 图论问题描述
ALGO-169 Air Conditioning Machinery搜索
ALGO-170 A Linking Loader 模拟
ALGO-171 The Ministers' Major Mess 2-SAT
ALGO-172 A Dicey Problem BFS
ALGO-173 To Add or to Multiply 数学
ALGO-174 Tiling the Plane 枚举、字符串匹配
ALGO-175 Castles 树形动态规划 贪心
ALGO-176 Bus Tour 状压DP
ALGO-177 Balloons in a Box 枚举 几何
ALGO-178 The Traveling Judges Problem 枚举 最小生成树
ALGO-179 A Major Problem 模拟
ALGO-180 Pyramids 动态规划
ALGO-181 According to Bartjens 枚举 表达式计算
ALGO-182 Partitions 模拟,floodfill
ALGO-183 Eurodiffusion 模拟
ALGO-184 Collecting Luggage 最短路,计算几何
ALGO-185 Trash Removal 计算几何
ALGO-1 区间 k 大数查询 排序 查找 问题描述 给定一个序列,每次询问序列中第 l 个数到第 r 个数中第 K 大的数是哪个。 输入格式 第一行包含一个数 n,表示序列长度。 第二行包含 n 个正整数,表示给定的序列。 第三个包含一个正整数 m,表示询问个数。 接下来 m 行,每行三个数 l,r,K,表示询问序列从左往右第 l 个数到第 r 个数中,从大 往小第 K 大的数是哪个。序列元素从 1 开始标号。 输出格式 总共输出 m 行,每行一个数,表示询问的答案。 样例输入 5 1 2 3 4 5 2 1 5 2 2 3 2 样例输出 4 2 数据规模与约定 对于 30%的数据,n,m<=100; 对于 100%的数据,n,m<=1000; 保证 k<=(r-l+1),序列中的数<=106。 ALGO-2 最大最小公倍数 贪心 问题描述 已知一个正整数 N,问从 1~N 中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数 N。 输出格式 输出一个整数,表示你找到的最小公倍数。
样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106。 ALGO-3 K 好数 动态规划 问题描述 如果一个自然数 N 的 K 进制表示中任意的相邻的两位都不是相邻的数字,那么我们就 说这个数是 K 好数。求 L 位 K 进制数中 K 好数的数目。例如 K = 4,L = 2 的时候,所有 K 好数为 11、13、20、22、30、31、33 共 7 个。由于这个数目很大,请你输出它对 1000000007 取模后的值。 输入格式 输入包含两个正整数,K 和 L。 输出格式 输出一个整数,表示答案对 1000000007 取模后的值。 样例输入 4 2 样例输出 7 数据规模与约定 对于 30%的数据,KL <= 106; 对于 50%的数据,K <= 16, L <= 10; 对于 100%的数据,1 <= K,L <= 100。 ALGO-4 结点选择 树形动态规划 问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了, 那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少? 输入格式 第一行包含一个整数 n 。 接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。
接下来一共 n-1 行,每行描述树上的一条边。 输出格式 输出一个整数,代表选出的点的权值和的最大值。 样例输入 5 1 2 3 4 5 1 2 1 3 2 4 2 5 样例输出 12 样例说明 选择 3、4、5 号点,权值和为 3+4+5 = 12 。 数据规模与约定 对于 20%的数据, n <= 20。 对于 50%的数据, n <= 1000。 对于 100%的数据, n <= 100000。 权值均为不超过 1000 的正整数。 ALGO-5 最短路 问题描述 给定一个 n 个顶点,m 条边的有向图(其中某些边权可能为负,但保证没有负环)。 请你计算从 1 号点到其他点的最短路(顶点从 1 到 n 编号)。 输入格式 第一行两个整数 n, m。 接下来的 m 行,每行有三个整数 u, v, l,表示 u 到 v 有一条长度为 l 的边。 输出格式 共 n-1 行,第 i 行表示 1 号点到 i+1 号点的最短路。 样例输入 3 3 1 2 -1 2 3 -1 3 1 2 样例输出
-1 -2 数据规模与约定 对于 10%的数据,n = 2,m = 2。 对于 30%的数据,n <= 5,m <= 10。 对于 100%的数据,1 <= n <= 20000,1 <= m <= 200000,-10000 <= l <= 10000,保 证从任意顶点都能到达其他所有顶点。 问题描述 ALGO-6 安慰奶牛 最小生成树 Farmer John 变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来 连接 N 个牧场,牧场被连续地编号为 1 到 N。每一个牧场都是一个奶牛的家。FJ 计划除去 P 条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是 需要保留的 N-1 条道路。第 j 条双向道路连接了牧场 Sj和 Ej(1 <= Sj <= N; 1 <= Ej <= N; Sj != Ej),而且走完它需要 Lj的时间。没有两个牧场是被一条以上的道路所连接。奶牛们非常伤 心,因为她们的交通系统被削减了。你需要到每一个奶牛的住处去安慰她们。每次你到达 第 i 个牧场的时候(即使你已经到过),你必须花去 Ci的时间和奶牛交谈。你每个晚上都会 在同一个牧场(这是供你选择的)过夜,直到奶牛们都从悲伤中缓过神来。在早上 起来和晚 上回去睡觉的时候,你都需要和在你睡觉的牧场的奶牛交谈一次。这样你才能完成你的 交 谈任务。假设 Farmer John 采纳了你的建议,请计算出使所有奶牛都被安慰的最少时间。 输入格式 第 1 行包含两个整数 N 和 P。 接下来 N 行,每行包含一个整数 Ci。 接下来 P 行,每行包含三个整数 Sj, Ej和 Lj。 输出格式 输出一个整数, 所需要的总时间(包含和在你所在的牧场的奶牛的两次谈话时间)。 样例输入 5 7 10 10 20 6 30 1 2 5 2 3 5 2 4 12 3 4 17
2 5 15 3 5 6 样例输出 176 数据规模与约定 5 <= N <= 10000,N-1 <= P <= 100000,0 <= Lj <= 1000,1 <= Ci <= 1,000。 问题描述 ALGO-7 逆序对 平衡二叉树 Alice 是一个让人非常愉跃的人!他总是去学习一些他不懂的问题,然后再想出许多稀 奇古怪的题目。这几天,Alice 又沉浸在逆序对的快乐当中,他已近学会了如何求逆序对对 数,动态维护逆序对对数等等题目,他认为把这些题让你做简直是太没追求了,于是,经 过一天的思考和完善,Alice 终于拿出了一道他认为差不多的题目: 有一颗 2n-1 个节点的二叉树,它有恰好 n 个叶子节点,每个节点上写了一个整数。 如果将这棵树的所有叶子节点上的数从左到右写下来,便得到一个序列 a[1]…a[n]。现在想 让这个序列中的逆序对数量最少,但唯一的操作就是选树上一个非叶子节点,将它的左右 两颗子树交换。他可以做任意多次这个操作。求在最优方案下,该序列的逆序对数最少有 多少。 Alice 自己已近想出了题目的正解,他打算拿来和你分享,他要求你在最短的时间内完 成。 输入格式 第一行一个整数 n。 下面每行,一个数 x。 如果 x=0,表示这个节点非叶子节点,递归地向下读入其左孩子和右孩子的信息,如 果 x≠0,表示这个节点是叶子节点,权值为 x。 输出格式 输出一个整数,表示最少有多少逆序对。 样例输入 3 0 0 3 1 2 样例输出 1
数据规模与约定 对于 20%的数据,n <= 5000。 对于 100%的数据,1 <= n <= 200000,0 <= a[i]<2^31。 ALGO-8 操作格子 线段树 问题描述 有 n 个格子,从左到右放成一排,编号为 1-n。 共有 m 次操作,有 3 种操作类型: 1.修改一个格子的权值, 2.求连续一段格子权值和, 3.求连续一段格子的最大值。 对于每个 2、3 操作输出你所求出的结果。 输入格式 第一行 2 个整数 n,m。 接下来一行 n 个整数表示 n 个格子的初始权值。 接下来 m 行,每行 3 个整数 p,x,y,p 表示操作类型,p=1 时表示修改格子 x 的权值为 y,p=2 时表示求区间[x,y]内格子权值和,p=3 时表示求区间[x,y]内格子最大的权值。 输出格式 有若干行,行数等于 p=2 或 3 的操作总数。 每行 1 个整数,对应了每个 p=2 或 3 操作的结果。 样例输入 4 3 1 2 3 4 2 1 3 1 4 3 3 1 4 样例输出 6 3 数据规模与约定 对于 20%的数据 n <= 100,m <= 200。 对于 50%的数据 n <= 5000,m <= 5000。 对于 100%的数据 1 <= n <= 100000,m <= 100000,0 <= 格子权值 <= 10000。
ALGO-9 摆动序列 动态规划 问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于 k 的正整数; 2. 序列中至少有两个数。 3. 序列中的数两两不相等; 4. 如果第 i – 1 个数比第 i – 2 个数大,则第 i 个数比第 i – 2 个数小;如果第 i – 1 个数 比第 i – 2 个数小,则第 i 个数比第 i – 2 个数大。 比如,当 k = 3 时,有下面几个这样的序列: 1 2 1 3 2 1 2 1 3 2 3 2 3 1 3 1 3 2 一共有 8 种,给定 k,请求出满足上面要求的序列的个数。 输入格式 输入包含了一个整数 k。(k<=20) 输出格式 输出一个整数,表示满足要求的序列个数。 样例输入 3 样例输出 8 ALGO-10 集合运算 数组 排序 问题描述 给出两个整数集合 A、B,求出他们的交集、并集以及 B 在 A 中的余集。 输入格式 第一行为一个整数 n,表示集合 A 中的元素个数。 第二行有 n 个互不相同的用空格隔开的整数,表示集合 A 中的元素。 第三行为一个整数 m,表示集合 B 中的元素个数。 第四行有 m 个互不相同的用空格隔开的整数,表示集合 B 中的元素。 集合中的所有元素均为 int 范围内的整数,n、m<=1000。 输出格式
第一行按从小到大的顺序输出 A、B 交集中的所有元素。 第二行按从小到大的顺序输出 A、B 并集中的所有元素。 第三行按从小到大的顺序输出 B 在 A 中的余集中的所有元素。 样例输入 5 1 2 3 4 5 5 2 4 6 8 10 样例输出 2 4 1 2 3 4 5 6 8 10 1 3 5 样例输入 4 1 2 3 4 3 5 6 7 样例输出 1 2 3 4 5 6 7 1 2 3 4 ALGO-11 瓷砖铺放 递归 问题描述 有一长度为 N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为 1,另一种长度为 2,数目不限。要将这个长度为 N 的地板铺满,一共有多少种不同的铺法? 例如,长度为 4 的地面一共有如下 5 种铺法: 4=1+1+1+1 4=2+1+1 4=1+2+1 4=1+1+2 4=2+2 编程用递归的方法求解上述问题。 输入格式 只有一个数 N,代表地板的长度 输出格式 输出一个数,代表所有不同的瓷砖铺放方法的总数 样例输入 4 样例输出 5
分享到:
收藏