蓝桥杯每日一题
文章平均质量分 75
day1
稻禾边的阳光
这个作者很懒,什么都没留下…
展开
-
算法 -- 链表
通过数组模拟链表来实现:e和ne通过来联系。原创 2024-03-19 10:33:27 · 374 阅读 · 0 评论 -
蓝桥杯 -- 并查集
并查集可以在近乎O(1)的时间内完成这两个操作。每个集合用一棵树来表示,树根的编号就是整个集合的编号。每个结点存储它的父节点,p[x]表示x的父节点。问题1:如何判断树根:if(p[x] == x)问题2:如何求x的集合编号:while(p[x]!问题3:如何合并两个集合:px是x的集合编号,py是y的集合编号。p[x] = y;优化(路径压缩):找过一个点之后,把路径上的所有点都指向根节点。原创 2024-03-23 20:47:29 · 335 阅读 · 0 评论 -
蓝桥杯 哈希表
unordered_map是C++中的哈希表,可以在任意类型与类型之间做映射。原创 2024-03-23 10:22:32 · 322 阅读 · 0 评论 -
蓝桥杯 每日一题 递归
递归问题本质就是一个多叉树的模型。原创 2024-03-13 10:26:21 · 416 阅读 · 1 评论 -
蓝桥杯 每日一题 DFS
树是一种特殊的图,有向图存一条边,无向图存两条边。图可以通过:邻接矩阵(不常用),邻接表(常用)。邻接表:插入节点用头插法。原创 2024-03-14 09:41:15 · 447 阅读 · 1 评论 -
蓝桥杯 BFS
给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维数组迷宫。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。输出一个整数,表示从左上角移动至右下角的最少移动次数。原创 2024-03-21 22:05:24 · 230 阅读 · 1 评论 -
蓝桥杯 -- 剪枝
有 N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 T时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D个单位时间,即它最早可以于 T时刻开始降落,最晚可以于 T+D时刻开始降落。降落过程需要 L个单位时间。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。请你判断 N 架飞机是否可以全部安全降落。输入包含多组数据。第一行包含一个整数 T,代表测试数据的组数。对于每组数据,第一行包含一个整数 N。原创 2024-03-20 10:30:30 · 634 阅读 · 1 评论 -
蓝桥杯 -- 准备的考点
知识点 出现次数模拟 17贪心 16DP 14枚举 11数学 9二分 8数论 7DFS 5前缀和 5推公式 5快速幂 4差分 4双指针 4状态压缩DP 4思维题 4BFS 3树形DP 3递推 3字符串处理 3排序 2搜索 2剪枝 2递归 2动态规划 2分类讨论 2线性DP 2最大公约数 2二叉树 2背包问题 2找规律 2并查集 2哈希表 2分解质因数 2堆 2。原创 2024-03-19 11:07:45 · 409 阅读 · 0 评论 -
蓝桥杯 日期问题
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。解题思路:前缀和思想,计算某一年到1/1/1的天数然后,二者相减。每组数据占两行,分别表示两个日期,形式为 YYYYMMDD。每组数据输出一行,即日期差值。测试数据的组数不超过 100。年份范围 [1,9999],输入包含多组测试数据。原创 2024-03-20 20:17:46 · 179 阅读 · 1 评论 -
蓝桥杯(3.5 每日一题 -- 双指针)
蓝桥杯每日一题 双指针原创 2024-03-05 00:24:35 · 366 阅读 · 0 评论 -
蓝桥杯核心难点 -- 背包问题DP
链接: 差分问题描述有 N件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0原创 2024-03-04 17:18:20 · 405 阅读 · 0 评论 -
蓝桥杯 (3.4 每日一题 -- 差分)
输入一个长度为 n的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r]之间的每个数加上 c。请你输出进行完所有操作后的序列。第一行包含两个整数 n 和 m。第二行包含 n个整数,表示整数序列。接下来 m行,每行包含三个整数 l,r,c,表示一个操作。共一行,包含 n个整数,表示最终序列。1≤l≤r≤n,−1000≤整数序列中元素的值≤1000解题思路:连续对一段区间执行相同操作,考虑差分:把数组拆成差分数组,再在差分数组。原创 2024-03-04 16:40:29 · 854 阅读 · 0 评论