自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 蓝桥杯打卡

本题就是把上界和下界也设为结点,分别是n+1和0,最后求的便是find(n+1)是否等于find(0)本题使用的是并查集,大概了解并查集的应用范围是用在想知道两个点是否连通或者说是否在同一个集合的情况,

2025-04-01 23:55:54 176 1

原创 蓝桥杯备赛打卡Day 24~Acwing 687. 扫雷

然后就是使用的dfs算法,连通块的元素使用dfs算法来寻找,并将其坐标(i,j) 对应的给g[i][j]变为-1;则剩下的不是-1的即为需要一次一次点掉的点(雷也标记为-1)本题运用的是flood fill算法,把无地雷的0元素看成洼地,拓展延伸成一个连通块,连通块的边界为非0元素,但不会是雷,否则中心不可能为0。

2025-03-04 23:20:10 115

原创 蓝桥杯备赛打卡Day 23~Acwing 1355. 母亲的牛奶

本题运用的是bfs算法,每种情况有六个方向(3个桶里挑一个,2个桶里挑一个把前一个桶的奶倒进去),然后如果该情况是没有标记过的,那么入栈,并标记为true。bfs的算法模板要记牢。

2025-03-03 22:28:26 230

原创 蓝桥杯备赛打卡Day 22~AcWing 1246. 等差数列

本题看完题解后发现,既然是等差数列,那么最短等差数列,最大公差一定是任意相邻两个之差的最大公约数即,gcd(n*d,m*d) = d ,最后用a[n-1]-a[0]除以d再加上1就是总长度。如果出现n个数相同的情况,那么d等于0,本身就是等差数列,直接输出n即可。

2025-03-02 23:10:59 161

原创 蓝桥杯备赛打卡Day 21~Acwing 4199. 公约数

开1e9的数组会爆内存,所以采用vector动态数组来写,然后都是基本操作。

2025-03-01 00:18:17 119

原创 蓝桥杯备赛打卡Day 20~Acwing 422. 校门外的树 && 1360. 有序分数

第二道题本来是需要使用递归算法,但是看到y总还有暴力题解,这边就先学暴力解法。第一道题太简单,就是直接用区间合并来写,所以学了第二道。

2025-02-27 23:18:22 232

原创 蓝桥杯备赛打卡Day 19~Acwing 1343. 挤牛奶

本题用到的算法是区间合并,我的解法是进行普通的区间合并操作,并且在每一次区间更改的时候判断一下最长连续挤奶时间以及最长连续无人挤奶时间是否需要更新。

2025-02-26 13:44:57 207

原创 蓝桥杯备赛打卡Day 18~AcWing 2868. 子串分值

而每个字母的贡献取决于从它开始向左第一次出现同个字母的位置以及向右第一次出现的位置,如果该字母是第一次出现,那就假设左边的出现位置为0,右边就设为n+1。然后用l,r数组来存储每个位置的字母对应的左右第一次出现该字母的位置最后贡献的答案大小就是(i-l[i])*(r[i]-i)解释:对于中间的a来说,区间的左边界可以为蓝色的情况,右边界可以为绿色的情况,故为(i-l[i])*(r[i]-i)本题运用的是贡献法,通过判断每个字母对于答案的贡献来求出答案。

2025-02-26 00:40:46 149

原创 蓝桥杯备赛打卡Day 17~Acwing 6118. 蛋糕游戏

本题有点类似于博弈论,首先A合并了中间两个,接下来B取哪边,A都要取反方向的合并才能保证最后他也能吃到更多的蛋糕,所以A实际上是取决于B的,没有自主选择其他来合并的方案;窗口以内蛋糕总和的最小值,就是B能选择到的蛋糕总数的最大值(由于是A取决于B,所以一定是B选到他能拿到的最大值。由于A先合并,且n为偶数,所以实际上A会吃到N/2+1个蛋糕,B会吃到N/2-1个蛋糕。来做,固定窗口长度l为N/2+1,则从1到n。

2025-02-24 14:34:39 188

原创 蓝桥杯备赛打卡Day 16~Acwing 6123.哞叫时间

【代码】蓝桥杯备赛打卡Day 15~Acwing 6123.哞叫时间。

2025-02-22 03:34:04 114

原创 蓝桥杯备赛打卡Day 15~Acwing 6122. 农夫约翰的奶酪块

【代码】蓝桥杯备赛打卡Day 15~Acwing 6122. 农夫约翰的奶酪块。

2025-02-17 20:10:23 112

原创 蓝桥杯备赛打卡Day 14~Acwing 1262.鱼塘钓鱼

那么在(work函数中)计算每种情况所钓到的鱼就可以枚举时间T,每个时刻找到钓鱼数最大的鱼塘钓鱼即可,并且spend[t]++(t表示最大钓鱼数的鱼塘)由于如果需要走到第二个鱼塘钓完鱼再回到原来的会耗费更多时间,所以每个鱼塘只会前进不会退后。枚举能走到的最远鱼塘i,则所耗时间等于总时间减去走到第i个鱼塘所需要的时间。本题运用的是多路合并算法,个人理解是每一步都找到最大值进行合并。

2025-02-16 23:46:05 205 1

原创 蓝桥杯备赛打卡Day 13~Acwing 5154. 牛的基因学

【代码】蓝桥杯备赛打卡Day 13~Acwing 5154. 牛的基因学。

2025-02-16 01:03:12 108

原创 蓝桥杯备赛打卡Day 12~Acwing 4261. 孤独的照片

本题首先枚举每个位置,如果当前位置是G,那么判断左右各有几个H,则符合孤独的照片的情况就是包括三种:1.L*R 2.L-1(只算左边,那么便至少需要两个,所以只有L-1种情况)3.R-1。y总代码是使用l数组和r数组来记录每个位置的左右各有几个与该点不同的数。

2025-02-14 21:30:59 202

原创 蓝桥杯备赛打卡Day 11~Acwing 505. 火柴排队

本题运用到归并排序求逆序对,以及将a数组映射成有序数组,并反过来映射到b数组,再求b数组的逆序对。答案的情况即为a数组和b数组同为递增有序对。归并排序模板有些生疏了,得再好好记一记。work函数还没完全搞懂。

2025-02-12 23:39:01 235

原创 蓝桥杯备赛打卡Day 10~Acwing

由于如果l满足条件,那么l左侧也满足条件,那么找到最极限(最靠左)的l使得上述子矩阵满足条件,即使用慢指针l和快指针r来判断包含第r列的子矩阵的(一共r-l+1)种情况是否满足小于等于k。本题运用双指针,首先i和j枚举固定宽度。当r++时便再移动l指针。

2025-02-11 14:46:33 156

原创 蓝桥杯备赛打卡Day 9~Acwing 1238. 日志统计

两个指针i和j所指向的时刻之间的距离应该小于等于d,即td[i].x-td[j].x

2025-02-10 21:06:18 219

原创 蓝桥杯备赛打卡Day 8~Acwing 4655. 重新排序

本题运用的是差分数组,将每个范围转化成范围内的每个数被采用的次数加1,那么就可以使用差分数组来转化成两个数的操作,缩小时间复杂度,而更改顺序就只需要进行排序即可。int 的范围大约是10的9次方,longlong是10的18次方,题中会爆int所以要转化为long long。

2025-02-09 12:51:52 102

原创 蓝桥杯备赛打卡Day 7~Acwing 5396. 棋盘

差分矩阵的初始化靠的是原矩阵的单点插入,而区间更改之后,想要求原数组只需求差分数组的二维前缀和。拓展:&1操作和%2操作等价,但%2会出现负数,&1不会。本题运用的是差分矩阵,背模板即可。

2025-02-08 23:31:20 125

原创 蓝桥杯备赛打卡Day 6~AcWing 4262. 空调

本题运用差分数组,首先将a数组减去b数组可以求出到底有几个数要变成0才可以使a数组变为b数组,接着差分可以将改变区间的值转化为只改变两个数的值,所以转化为差分数组,由于差分数组是l位置的数加1,那么r+1位置的数就要减1,所以可以直接看。,(pos-neg)次是互相抵消,剩下的是和n+1的位置互相抵消。差分数组的pos(正数之和)和neg(负数之和)的最大值。

2025-02-07 23:17:56 150 1

原创 蓝桥杯备赛打卡Day 5~AcWing 3745. 牛的学术圈

为了判断在写完综述之后是否有i篇被引用i次的论文,那么只需要确定排序后的第i篇是否是大于等于i-1 并且 原本就被引用i次的论文到第i篇论文相隔是否小于综述可引用篇数(i-j<=L)本题运用双指针,但是其实更主要的思路是从大到小排序之后的枚举以及判断。

2025-02-06 22:09:32 371

原创 蓝桥杯备赛打卡Day 4~Acwing 99. 激光炸弹

本题也是运用前缀和,但属于矩阵前缀和,要注意的是求区域和时记得末尾减的是区域起点减一的区域和,并且本题空间复杂度有要求,并且不会再用到原矩阵,所以求和矩阵直接在原矩阵上进行。x和y的范围是5000,所以循环直接用5001结束就好。

2025-02-05 21:11:39 136

原创 蓝桥杯备赛打卡Day 3~Acwing 562. 壁画

拓展:贪心算法是已知两集合,最优解在其中一集合,则可以缩小范围在该集合中再分为两集合再寻最优解。本题运用的是前缀和,直接枚举所有n/2(向上取整)的区间求最大的值即可。n/2向上取整是因为先涂色再坏墙,分奇偶数考虑,所以有这么多个墙被涂色。并且按题意得涂色区间是连续无间隔的。

2025-02-04 21:11:37 182

原创 蓝桥杯备赛打卡Day 2~Acwing 5407. 管道

本题也是运用二分:所求解在0到2e9的范围内并且mid满足时左侧都满足,mid右侧都不满足的规律,故可用二分提高效率;并且运用区间合并来判断mid时刻可否灌满整条管子。区间合并:st和ed都初始为-1,将所有区间以左端点排序,遍历所有区间,如果左端点小于等于ed+1,那就合并。

2025-02-03 21:03:37 199 1

原创 蓝桥杯备赛打卡Day 1~Acwing 1227 分巧克力

将所求设出来,发现满足Σ(Hi/mid)*(Wi/mid)要大于等于k,则可根据二分快速找出满足的最大值。

2025-02-02 17:24:16 129

原创 Acwing 蓝桥杯集训.每日一题 K倍区间(蓝桥杯辅导课)

那么在一个新数组res[]中,res[s[i]%k ]和res[s[i-4]%k]是同一个res数组的元素,那么在for循环的过程中,只要出现s[一个值]%k = 3。因为前面我们计算的都是符合条件的任意两个的前缀和构成的子序列(即s[j]-s[i-1]),忽略了s[i-1]和s[j]本身就是符合条件的子序列,所以最后要加上res[0](s[j] = 0);第三个出现的时候 cnt+= 2,res[s[x]]++(cnt在这个前缀和的情况一共加了1+2次,res[s[x]]变成3)res[s[i]]++;

2024-03-02 13:58:28 635

原创 Acwing 蓝桥杯集训.每日一题 截断数组

第二个if:由于第一刀的方案次数都被记下来了(并且随着i-2不断递增,第一刀的方案次数还可能继续增多),所以当i-1这个指针运行到满足第二刀的条件时,也就是s[n]-s[i-1] = s[n]/3时;所以当你从a[1]开始输入时,每次输入a[n]的时候都可以算出s[n],可以直接用s[n]表示a[n],然后输入单个元素的值之后直接加上前面的s[n-1]就变成n个数的和。要注意两刀的位置是不可能重合的,并且极端的情况是第一刀在n-2的位置,第二刀在n-1的位置。记得res要用long long;

2024-03-01 10:51:37 622 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除