自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯备赛Day17 数学

记住mod= 998244353998244353是质数,1000000007(1e9 + 7)是质数,1e9 + 9是质数。(a % p / b % p) % p(特殊)的问题,利用二进制来算,如下图所示。

2025-04-04 15:28:36 486

原创 蓝桥杯备赛 Day16 单调数据结构

单调栈和单调队列能够动态的维护,还需用1-2两个数组在循环时从单调栈和单调队列中记录答案1.时刻保持内部元素具有单调性质的栈(先进后出),核心是:入栈时逐个删除所有"更差的点",一般可分为单调递减栈、单调递增栈、单调不减栈、单调不增栈,例如要求某个点左侧第一个比它大的点的值(或位置),如下图所示:![[单调栈.png]]最后一个5入栈前要把前面那个5弹出,保证严格单调递减2.单调栈用STL的stack实现,stack的操作:百亿富翁学习:(1)这题就是典型的单调栈的使用,就是对于每栋楼,左边第一

2025-04-04 15:28:00 439

原创 蓝桥杯备赛 Day15 树形数据结构

(1)此题暴力筛选会超时,充要条件是矩形 1 的长度严格大于矩形 2 的长度并且矩形 1 的宽度严格小于矩形 2 的宽度,就可以。(如果长度一样则按宽度降序排列,保证不会选这两个),然后问题就转化为。2.树状数组先要了解lowbit操作,这是一种二进制操作,”的问题(前缀和是多次修改完多次查询),不过一般解决。(2)单点修改不仅要调用update函数,,直到为0(不能等于0,不然死循环,所以。(2)而三种颜色就是三个树状数组,用。即维护一个长为lowbit(x)的。5.区间查询函数:如下图,查询区间。

2025-03-31 15:25:55 297

原创 蓝桥杯备赛 Day14 字符串

1.这题用Manacher算法求出数组p,即以每个字符为回文中心的回文半径,然后要理解题意,首先回文字符不能是添加的字符’#',其次回文半径要是奇数,然后一个。(2)对于a字符,左侧的c字符的左边界超过a字符蘑菇的左边界,从而不能直接对称到右侧去,但是能保证右侧c字符的回文字符串的长度。,s必定也为奇数长度,rev(s)也为奇数长度,s和rev(s)中间的数必定相等,s’中间的数必定是0,所以也是。朴素的模式匹配为主串和子串的一个字符不匹配,主串回溯到第二个字符,子串回溯到第一个字符,效率太低。

2025-03-31 15:25:21 428

原创 蓝桥杯备赛 背包问题

(1)特征:物品除了价值v,体积w两个特征外,还多了一个重量m特征,现在有两个限制条件:体积不超过W和重量不超过M的最大价值。(3)修改s的遍历即可,不再是1个1个加,而是倍数乘,而2个物品对应修改为2w,2v即可,最终的复杂度为。s=14=1+2+4+7(其他),要取10个物品,就相当于依次取1,2,7个物品即可,+其他,一个物品可以分为约log2(s)组,就可以将。(1)特征:共有n组物品,每组物品里面有s个物品,每个物品有对应的w和v,表示到第i个物品为止(不一定拿),到容量j为止,背包的最大价值。

2025-03-22 21:08:41 710

原创 蓝桥杯备赛Day12 动态规划1基础

2025-03-03 19:53:58 1036

原创 备战蓝桥杯Day11 DFS

有时间戳,说明访问过,例如从id=1开始,最小时间戳1,最终从id=5,时间戳为5,到id=3,时间戳为2>1,说明有新的圈,圈长度5-2+1=4.而从id=7,最小时间戳为8开始,到id=4,时间戳为4<8,说明访问之前时间戳的圈的元素,不算.(2)寻找填补多少块土地能把所有连通块连起来,要分情况讨论,情况1是以某块土地到所有草坪路径和最少,情况2为草坪间距离和最少,所有最终答案就取最小的,但是情况1要减2,因为该块土地被计算2次,情况2也要减2,因为两块草坪的草地不算。

2025-03-01 22:16:43 767

原创 蓝桥杯备赛Day10 位运算

考虑每一位0或1对当前位的贡献度(只有0^1=1).题目条件0-20位,对于每一位j,对于prefix[i],若prefix[i]=0,则算前面有多少个1,加上这个个数,就是这个0对这一位的贡献度,最终的和就表示有多少组0和1配对,就是。(1)构造异或前缀和,利用上面异或的性质4,最终不是。,然后次数乘上当前位的权重(cnt*(1<<j))(2)优化:异或为位运算,考虑。

2025-02-28 09:41:05 486

原创 蓝桥杯备赛 Day9 构造

但是遍历会超时,可以类似于前缀和思想,求[1,r]满足条件总和-[1,l-1]满足条件总和,奇数个数为(x+1)/2(例如1,3,5,7,x=7+1=8/2=4,x=8+1=9/2=4),4的倍数个数为x/4(例如4,8,x=8/4=2,x=9/4=2)(1)找到规律先存到set里面,然后要考虑最大开到1e6,然后暴力能得70分。(1)先暴力,不过要尽可能加多一点break条件,避免超时。考察总结归纳能力,没有固定解法。

2025-02-25 21:21:00 334

原创 蓝桥杯备赛 Day8 二分

的判断条件),所以为一个二分问题,left=1,right=n,如果mid满足判断条件,说明不是最小的跳跃距离,缩小右边界,如果mid不满足判断条件,说明跳跃距离不够缩小左边界,最终找到的target=left(或者right-1)不用二分(不是最小值最大化这种,因为x成立,x-1不一定成立,不是单调的),就是多个集合取交集,Vmin=max(),Vmax=min()时,若mid满足条件,left=mid+1结束循环,若mid不满足条件,肯定比key多1,right=mid-1=key)

2025-02-20 12:14:07 551

原创 蓝桥杯备赛 Day7 双指针

初始区间[l,0]为非法区间.两个指针从同侧开始,以不同策略、不同速度移动,形成[l,r]合法区间,直到right>n或者left>right。(3)双指针一般只考虑一维,所以遍历行,列为快慢指针,然后for中r++,而for里面条件判断l++,再看快慢指针动完后所求数变了多少。left=1,right=n反向,直到left>right。(2)遍历二维矩阵时注意x2,y2从x1,y1开始,不重复。(1)常用于数组或字符串,用两个变量来表示下标实现。(2)想明白开几个数组,每个数组什么含义。

2025-02-19 15:51:11 486

原创 蓝桥杯 Day6 贪心

1.模拟砍竹子砍到高度1,不过要记录过程高度,以便后续判断是否存在(想到集合哈希),然后外面嵌套数组(活用数据结构)+resize给大小。2.整数默认向下取整,浮点数才用ceil()和floor(),3.sqrtl对应long long。

2025-02-19 15:50:31 508

原创 备战蓝桥杯 Day5 前缀和

子串分值和为右侧为n的特殊情况,本题右侧没有字母则为n+1,需要预处理每个位置字母的左右边界,和前缀和类似。跟前缀和没啥关系,暴力两层遍历+map哈希能拿一些分,得满分要。,然后遍历一次字符串(字符串之前先加个空格),每个字母左边到。[[字母贡献度.png]]本质为上面。前缀和:预处理算法,a为静态数组,即。种情况,两侧互相独立,相乘即可。,保证第一次出现,共。种情况,右边到n,共。

2025-02-17 11:43:42 406

原创 备战蓝桥杯 Day4 差分

1.三维数组不能开太大,否则编译不通过,可以第一维开3000,后两维开200。利用差分+1-1获得数组每个位置的查询次数(可简化为一个数组),而。2.多层for中直接退出先输出答案然后。,只不过第一次可以利用前缀和。,查询次数越大,再利用。

2025-02-17 11:42:10 347

原创 备战蓝桥杯 Day2 枚举 Day3 进制转换

枚举要细致,考虑所有情况,一般为填空题,根据题目选择手算还是机算。

2025-02-14 20:03:41 405

原创 备战蓝桥杯 Day1 回顾语言基础

开启蓝桥杯刷题之路。

2025-02-14 20:02:01 384

原创 CCF-CSP认证考试准备第十七天

5.像这种去匹配n个规则的某一个的,函数传入参数为一个规则,遍历在main函数里面写,**这题的结果string result是作为引用参数传入函数来改变的,而不是作为函数的返回结果**,因为match函数最终是起到bool判断效果判断输出结果,但在判断中途就可以改变result,所以选择为引用参数传入函数。1.规则的相邻两项之间用‘/’分开,所以我们先把所有项分开:(**重点学习**)分离字符串这里用**字符串流处理,先把所有的‘/’变为空格,然后一个一个把各项分开。// 规则是否以 '/' 结尾。

2024-09-18 22:00:24 857

原创 CCF-CSP认证考试准备第十五天 202303-3 LDAP

此题和[[CCF-CSP认证考试准备第十四天 201912-3 化学方程式]]都是字符串解析,但不一样,**201912-3 化学方程式难点在于嵌套括号结合要用到栈**,但**本题难点在于如何储存用户的DN,用户所具有的属性编号和属性编号的值三者关系来条件判断,没有嵌套括号,只有一层括号,所以不需要使用栈**,**但两道题目核心都是字符串解析,先解析大的结构,然后每个大的里面解析小的结构**res.insert(shu_users[shu].begin(),shu_users[shu].end());

2024-09-13 20:17:00 699

原创 CCF-CSP认证考试准备第十四天 201912-3 化学方程式

4.确定何时弹出一个栈元素并相应操作:遇到')'弹出这一个括号内的map<string,int>,获取上一个括号内的map<string,int>(即为top()),加上这一个括号内的元素下标系数乘以算得的括号系数。6.最后栈顶元素为这一个方程式的map<string,int>,但不包括前面的系数,所以结果map<string,int>为栈顶的map<string,int>乘上传入的前面系数。//提取一个层级的map<string,int>,乘上括号后面的系数。

2024-09-12 19:17:41 717

原创 CCF-CSP认证考试准备第十三天:201909-3 字符画(大模拟)

B m` 更改终端的**前景色(字符的颜色)** 为 (R,G,B)这个根本没有用到,且本题难点就是字符串的格式输入输出以及16进制的字符与16进制的数及10进制的数之间的转换。last=init;

2024-09-09 22:20:12 757

原创 CCF-CSP认证考试准备第十二天 201903-3 损坏的RAID5(大模拟)

需要明确每个块(或数据单元)是如何分配到不同的磁盘(或存储单元)的(**即数据的分布规律**),然后写出能够根据块编号定位磁盘和偏移量的公式(本题的行数是关键,不同行的效验盘索引不一样(题目告知),通过效验盘索引可以推出b号块所在的盘索引(因为题目是跳过效验盘来分布块),再获取b号块在当前盘的索引)。3.介绍条带:**条带**是指连续、等大的数据块,是 RAID5 进行数据布局的基本单元。**规律1:如果将条带也从 0开始编号,且条带大小为 s个块,则编号为 b 的块所在的条带编号是[b / s]**

2024-09-08 09:11:46 766

原创 CCF-CSP认证考试准备第十一天

从左往右算,因为d<<n,而矩阵运算可以交换,为( (1xn) · ( (nxd)x(dxn) ) )x(nxd),从左往右算(nxd)x(dxn)=(nxn),然后计算(nxn)x(nxd),非常麻烦,而从右往左算(dxn) x(nxd)=(dxd),然后计算(nxd)x(dxd),大大简化。map记录(不用vector是因为开垦耗时是不连续的,稀疏的),然后类似于后缀和开垦耗时要降低一天就要`flag[i-1]+=flag[i];//flag记录开垦耗时相同的所有区域降低一天的总耗资源量。

2024-09-05 16:12:12 675

原创 CCF-CSP认证考试准备第十天

*逆序遍历的原因**:逆序遍历是为了保证在更新 `dp[j]` 时,`dp[j - vPrices[i]]` 仍然代表的是没有选择第 `i` 本书时的状态(因为这时还没有更新`dp[j - vPrices[i]]`,所以肯定不包含第i本书)。在0/1背包问题中,`dp[i][j]` 仅依赖于 `dp[i-1][j]` 和 `dp[i-1][j-重量]` 的值。**`f[i][j]` 的含义**:`f[i][j]` 是动态规划状态,表示在考虑前 `i` 本书时,总花费为 `j` 元时的最小可能花费。

2024-09-03 21:05:18 521

原创 CCF-CSP认证考试准备第九天

我们可以想象一个数轴,数轴上的每个点处的数是0,**只要被一个区间覆盖,覆盖到的地方就全部+1**,这样处理这n个区间,我们就得到了这n个区间在数轴上的叠加覆盖,数轴上的数是几,那它就在几个区间内。**即让区间[ti​+1−k−ci​,ti​−k]内的数全部+1呢**(**差分**)则q的范围是:t+1−k−c≤q≤t−k(因为q是查询,转化为q的范围,然后判断q)题目给了n组(ti​,ci​),相应的就有n个区间[t+1−k−c,t−k](**区间判断**)由题意可以列出:q+k≤t≤q+k+c−1。

2024-08-30 16:23:06 1028

原创 CCF-CSP认证考试准备第八天

*本题的差分数组**:像是一种**计数器**,指**某个数值引起的段数的变化**,通过计算每个数值为阈值时,非零段的**变化量(不是最终量)**。然后,通过对这个数组的前缀和(**状态变化的累积思想**)操作(**计算最终量**),我们能得出不同阈值时的非零段总数。**这里要注意,当前这段的最后一个数不一定是 g(x)=g的最后一个数,因为 g 可能会横跨不同的 f,所以 last = min((g + 1) * r - 1, a[i + 1] - 1);

2024-08-28 23:41:13 945

原创 CCF-CSP认证考试准备第七天

题目要求就是求二维数组一个方框内的元素和,并除以个数求平均值与阈值t比较,就想到二维前缀和优化,**注意**:邻域:对于矩阵内每一个点A [i] [j]来说,其邻域内的点A[x] [y]满足:0 ≤ x , y < n 且 且∣x−i∣≤r且∣y−j∣≤r,其中r为输入的一个正整数,题目是[0,n),但是我们二维前缀和一般为[1,n]注意区别。(1)题目索引由1开始,为了方便直观,采用s[i]=s[i-1]+a[i],sum[l.r]=s[r]-s[l-1]int x1=max(1,i-r);

2024-08-27 23:05:47 699

原创 CCF-CSP认证考试准备第六天

*前缀和优化**:我们完全可以运用类似前缀和的方法,在选取阈值之前,通过一次正向和一次逆向遍历数组,计算出对每一个元素 stu[i], stu[1]到stu[i-1]中 result=0 的个数和 stu[i]到stu[m]中result=1 的个数。(**注意**:前缀和和前缀积第0号元素的值要注意,不行可以自主添加)遍历两个**有序**列表(在本题中是稀疏向量的非零元素列表)时**减少不必要的比较和迭代**。**关键**:a[0][i]和a[1][i]分别记录前i个数(不包括自己)中0和1的个数。

2024-08-27 14:52:59 431

原创 CCF-CSP认证考试准备第五天

(2)优化学习思路:[CCF-CSP 201903-2二十四点 三种方法 满分题解 结尾附惊天方法_ccf csp真题24点-优快云博客](https://blog.youkuaiyun.com/m0_53641110/article/details/120875227?(1)题目理解:题目只有判断一处坐标存不存在垃圾即可,即快速判断一个元素存在不存在(哈希),故而想到用set(或者用map)实现(但对于此题set更好一点,因为次数不是跟每一个元素关联的,不需要使用map键值对,只需要set判断是否存在即可)

2024-08-25 23:55:22 704

原创 CCF-CSP认证考试准备第四天

这样做可以减少查找的时间,因为 `vector` 的访问时间是 O(1) 而 `map` 是 O(log n)。此外,这样做也减少了内存的开销,因为 `map` 存储了额外的键值对信息。//注意这个判断在j循环里面。今天先写两题吧,目前第一题全都刷完,明天开始刷第二题,加油!#### 1.202309-1:坐标变换(其一)(小模拟)#### 2.202312-1:仓库规划(小模拟)(1)理解判断逻辑即可。

2024-08-24 23:42:00 452

原创 CCF-CSP认证考试准备第三天

CCF-CSP-202112-1:序列查询(C++11题解)_ccfcsp模拟考试序列查询c++-优快云博客](https://blog.youkuaiyun.com/WZZ_2363173126/article/details/122133673?交叉部分面积(以两个矩形为例),交叉部分矩阵右边界即原两个大矩阵的右边界中的较小值,左边界即原两个大矩阵的左边界中的较大值。**但首先判断两个矩阵之间是否存在交叉部分**.(1)题目:A1,A2,⋯,An 是一个由 n 个**自然数**(即非负整数)组成的数组。

2024-08-23 23:59:08 676

原创 CCF-CSP认证考试准备第二天

### Day2:1.202006-1 2.202009-1 3.202012-1 4.202209-1 5.202212-1#### 1.202006-1:线性分类器(计算几何,小模拟)(1)题目:判断给定的直线能否将所有的 A 类点和 B 类点分隔在平面上的不同区域。判断的方法是:1. 对于每条查询直线,计算每个点在直线上的位置。2. 如果所有 A 类点和 B 类点分别位于直线的两侧(即符号不同),则输出 `Yes`;否则输出 `No`。(2)知识点:存储一堆点的二维坐标时,常见的选

2024-08-23 00:13:26 624

原创 CCF-CSP认证考试准备第一天

而使用 **`vector<bool>`** 这个结构用来跟踪变量是否被初始化,每个变量通过索引进行访问,可以在时间复杂度上将查找和插入的操作从 O(log n) 优化到 O(1),在处理大数据量时会更加高效。对于整数请直接输出整数,**对于可能出现的小数,请输出四舍五入保留 1 位小数的结果。第一行输入一个整数 n,在第二行中存有 n 个有序的整数,表示测量数据,可能为升序或降序排列,可能存在连续多个整数相等。老师给了你一个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重复的数据。

2024-08-21 23:53:17 890

原创 代码随想录Day_9 栈与队列part01

文章讲解:[https://programmercarl.com/%E6%A0%88%E4%B8%8E%E9%98%9F%E5%88%97%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html](https://programmercarl.com/%E6%A0%88%E4%B8%8E%E9%98%9F%E5%88%97%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html)// 第二种情况:遍历字符串匹配的过程中,发现栈里没有我们要匹配的字符。

2024-07-31 11:36:53 491

原创 Day_7 字符串part01 344.反转字符串 、541. 反转字符串II 、卡码网:54.替换数字

题目链接/文章讲解/视频讲解:[https://programmercarl.com/0541.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2II.html](https://programmercarl.com/0541.%E5%8F%8D%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2II.html)2. **`reverse(s.begin() + i, s.begin() + i + k)`**://左闭右开。

2024-07-18 22:22:22 837

原创 Day_6 哈希表part02 454.四数相加II 、 383. 赎金信 、15. 三数之和 、18. 四数之和

题目链接/文章讲解/视频讲解:[https://programmercarl.com/0018.%E5%9B%9B%E6%95%B0%E4%B9%8B%E5%92%8C.html](https://programmercarl.com/0018.%E5%9B%9B%E6%95%B0%E4%B9%8B%E5%92%8C.html)//如果 `a + b` 作为键不存在于 `umap` 中,则 `umap[a + b]` 会创建一个新的键值对,其中键为 `a + b`,值初始化为 `0`。

2024-07-18 19:00:42 621

原创 Day_5 哈希表part01 哈希表理论基础 、242.有效的字母异位词 、349. 两个数组的交集 、202. 快乐数 、1. 两数之和

题目链接/文章讲解/视频讲解: [https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html](https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html)所以set 也不能用。

2024-07-15 11:51:41 338

原创 Day_4 24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 , 面试题 02.07. 链表相交

文章讲解:[https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html](https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html)这道题,我想用两头取值的双指针,结果错了?

2024-07-13 22:09:44 445

原创 Day_3 链表理论基础 、203.移除链表元素 、 707.设计链表 、206.反转链表

题目链接/文章讲解/视频讲解::[https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html](https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html)= NULL) {//因为下面是cur->next->val,所以要cur->next!

2024-07-06 22:22:30 321

原创 代码随想录算法训练营第二天| 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵Ⅱ

文章讲解:[https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html](https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html)这道题,我想用两头取值的双指针,结果错了?

2024-07-04 11:52:32 549

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。

文章链接:[https://programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html](https://programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html)删除一段元素后,传入的迭代器指向也是不变的,仍然指向原来传进去时候的位置,修改的是删除段后面的元素的位置。//当没有进行删除的时候,迭代器++

2024-07-03 21:30:57 485 1

空空如也

空空如也

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

TA关注的人

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