
算法(LeetCode、蓝桥杯)
文章平均质量分 69
主要为二分查找、动态规划、模拟、哈希、贪心、图论等常见算法题解
hai .
谁的青春不迷茫
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。最终取出窗口滑动过程中的最长字串。原创 2024-04-16 20:55:49 · 301 阅读 · 0 评论 -
2020年蓝桥杯国赛C++B组试题(续)
这就是一道求最长递增子序列的题目,知道了LIS的求法后,难点就在于怎么得满分和找最小的最长递增子序列。LIS的动态规划求法:对于找最长递增子序列,我们可以利用一个数组p来记录到当前名字的上一个名字索引位置,当dp[i] 取dp[j]+1的时候,p[i] = j。对于找最小的,我们可以把所有的答案存到set集合里面,set会自动按字典排序,最终取begin位置上的就行。只有70分,剩下的超时了,因为没有使用二分去优化。麻了麻了👉 二 答疑——贪心题目链接据s+a+e的...原创 2022-06-16 21:11:47 · 297 阅读 · 0 评论 -
2020年蓝桥杯国赛C++B组试题
题目链接注意坐标可能是负数就可以了,因此,我们把初始点整体右移一定距离,然后常规BFS。👉 二 阶乘约数——数论题目链接思路👉 三 本质上升序列——动态规划题目链接思路据说90%的字符串问题都可以用 动态规划(dp) 解决哦现在考虑去重,在第2个中的状态转移方程中,我们只考虑了dp[i] > dp[j]的情形,那么如果dp[i] == dp[j]和dp[i]......原创 2022-06-14 21:12:20 · 756 阅读 · 1 评论 -
切绳子 + 马的遍历 + 导弹拦截 [洛谷]
⭐️目录⭐️⚡️1 马的遍历——BFS1.1 解题思路1.2 代码贴贴⚡️2 切绳子——二分2.1 解题思路2.2 AC代码贴贴⚡️3 导弹拦截——LIS3.1 解题思路3.2 代码贴贴⚡️1 马的遍历——BFS马的遍历1.1 解题思路这道题就是标准的bfs(广度优先搜索)模板题型,知道迷宫类问题怎么做,这道题就不难。不一样的点就是下一步有8个位置可以选择。1.2 代码贴贴#include<bits/stdc++.h>using namespace std;const int原创 2022-04-07 13:43:56 · 575 阅读 · 1 评论 -
交换瓶子 四平方和 路径之谜[蓝桥杯真题]
目录交换瓶子——贪心分析:AC代码:四平方和分析:AC代码:路径之谜——dfs分析:AC代码:交换瓶子——贪心原题链接分析:最简单的思路就是暴力法,由于数据量较小,所以n^2不会超时。 具体做法为:贪心,每一次把不在该位置上的瓶子交换到正确的位置上。AC代码:#include<bits/stdc++.h>using namespace std;int a[10005];int main(){ int N; cin>>N; //最简单的思路,暴力法,由于数据原创 2022-04-04 18:00:42 · 726 阅读 · 1 评论 -
日志统计 蓝桥幼儿园 青蛙跳杯子 最优包含 小数第n位[ 蓝桥杯真题 ]
目录日志统计蓝桥幼儿园——并查集最优包含——DP小数第n位——数学青蛙跳杯子——bfs日志统计做这题像在上班的样子蓝桥幼儿园——并查集怀念幼儿园最优包含——DP最优包含小数第n位——数学纯纯的数学知识青蛙跳杯子——bfs杯子跳青蛙...原创 2022-04-04 14:18:47 · 617 阅读 · 2 评论 -
算法提高 [蓝桥杯]
1 打包二分思路:二分,因为打包的最大重量必然落在 maxWeight 和 sumWeight之间,所以可以二分枚举重量使得恰好可以满足M个包裹。与跳石头这道题类似。#include<bits/stdc++.h>using namespace std;int N, M;int w[100010];int sum;int ma;int main(){ cin>>N>>M; for(int i = 1; i <= N; ++i){ cin&原创 2022-03-30 18:23:30 · 2056 阅读 · 0 评论 -
蓝肽子序列 [蓝桥杯]
蓝肽子序列,一个对 最长公共子序列 改版的题目。原题传送分析: 这是最长公共子序列的升级版,在最长公共子序列中是以一个 字符 为单位,现在是以一个 单词 为单位,我们可以把一个单词看作一个字符来处理。最长公共子序列中每次都是对某个字符进行比较,这道题中我们要取出两个字符串的一个完整的单词去进行比较。dp[i][j]:表示第一个字符串在i位置时,第二个字符串在j位置时,他们公共单词的最大个数。状态转移这里不好描述,见代码及注释。#include<bits/stdc++.h>u原创 2022-03-28 19:49:03 · 658 阅读 · 2 评论 -
蓝桥侦探[蓝桥杯]——种类并查集
⭐️引言⭐️针对蓝桥侦探这道题,博主用了检查环的方法和种类并查集来解。其中检查环是会超时的,因为数据集比较大,所以最优法还是种类并查集,下面依次介绍。⭐️目录⭐️⚡️题述⚡️解法1——判断环:❄️检查环的算法——拓扑排序⚡️解法2——种类并查集:⚡️题述原题TP输入4 5 1 21 3 2 3 3 41 4输出2限制在1s内。⚡️解法1——判断环:对每一条信息所对应的数据映射成x、y,看成x顶点和y顶点,将x、y连接起来,即形成一条边。若出现添加一条边后出现环的现象原创 2022-03-27 15:13:49 · 1382 阅读 · 6 评论 -
大胖子走迷宫 [蓝桥杯 ]
题述 大胖子走迷宫原题链接分析与普通走迷宫其实是一样的,就是多了胖子的体型会变化,以及下一步原地不动的限制条件。我们可以套用标准的bfs模板,然后加上到了k时刻及2k时刻半径(假如占用5x5,那么半径为 r = 5/2=2 )的变化,和原地不动也添加到队列中这几个条件积就可以了。注意:1.地图起始是从0开始。2.原地不动的走法要放在往四个方向走的后面。代码#include<bits/stdc++.h>using namespace std;const int N = 303;原创 2022-03-26 12:36:31 · 1219 阅读 · 5 评论 -
洛谷 P2678 跳石头
跳石头(二分+贪心)原题TP输入格式输出格式一个整数,即最短跳跃距离的最大值。输入25 5 2211141721输出4说明/提示样例数据说明:将与起点距离为 2和 14的两个岩石移走后,最短的跳跃距离为 4(从与起点距离 17 的岩石跳到距离 21 的岩石,或者从距离 21的岩石跳到终点)。另外:全部数据满足如下分析1.此题按照暴力解的意思,就是依次采取距离(1~L),从所有石头中找出到源点之间有多少个石头可以删除,且删除数量不超过要求的数量M,找到移除石头原创 2022-03-22 11:10:00 · 475 阅读 · 4 评论 -
纯质数 、最少砝码、灌溉[蓝桥杯]
蓝桥杯每日三题一 纯质数(2021)国赛 C++ B组二 最少砝码三 灌溉一 纯质数(2021)国赛 C++ B组如果一个正整数只有 11 和它本身两个约数,则称为一个质数(又称素数)。前几个质数是: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, · · ·2,3,5,7,11,13,17,19,23,29,31,37,⋅⋅⋅ 。 如果一个质数的所有十进制数位都是质数,我们称它为纯质数。例如:2,3, 5, 7, 23, 372,3,5,7,23,3原创 2022-03-08 19:22:43 · 419 阅读 · 1 评论