自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BZ_C25LX 的博客

把平时学到的知识写在这里。于2023/6/18第一次大整改:整理差分与前缀和、线段树、树状数组博文(丢失部分内容已标注),将质数筛文章2合1(-4点赞)及专栏管理,STL2合1(-1点赞)。

  • 博客(48)
  • 收藏
  • 关注

原创 csp-j

考前一天晚上太兴奋了,很久才睡着。而且第二天来考场的时候还有点晕车。​ T1:没想多久推出了公式,很快就过了,还进行了对拍,所以很有自信。​ T2:贪心,也很简单,很快就想到了。​ 做完一二题后,加上前面审题和对拍,过了1小时。​ T3:读了20分钟左右的题,后来发现不会,就打了一个50分的特判(特判分给的有点高,50分的代码难度还不如T1)​ T3花了40分钟​ T4:入门级考纲里没有迪杰斯特拉,所以考试时就根本没往这方面想,结果还真是。看来以后不能太在意考纲。

2023-10-23 23:17:32 97

原创 学习进度——附《全国青少年信息学奥林匹克系列竞赛大纲》

1005​ 把不是很会的线段树和树状数组搞懂了,另复习了STL容器、二分、三分。​ 1、树状数组(详见树状数组2.2.3.3)​ 2、线段树(详见线段树2.2.3.3)​ 3、STL部分容器(详见STL2.1.2.13),vector、栈、队列​ 4、三分算法BZOJ#17 曲线​ 注意:1.涉及浮点数lll从0开始而不是从1.​ 5、二分BZOJ#472 二分法求函数的零点。

2023-10-05 22:30:48 405

原创 暑期二期信息竞赛学习总结与后期计划

​ 最近总结了动态规划中几个最值问题经典模型,线性和区间掌握得不错,数位DP和树形DP不够熟练。​ 2、动态规划(线性DP复习、区间DP、数位DP、树形DP)​ 掌握得非常好,自己预习加课上一共听了两遍,记忆非常深刻。​ 1、高级搜索(双向广搜、A*、IDDFS、IDA *)​ 树状数组的应用:例如,求逆序对等,没有较好的巩固。​ 双向广搜的代码打的不熟练,其余三项掌握的不错。​ 4、LCA(最近公共祖先暴力法、倍增法)​ 3、c++特性(如:面向对象)​ 4、排序(复杂度、稳定性)

2023-08-25 23:56:23 321

原创 【高级搜索】双向广搜,A*,IDDFS,IDA *算法总结 (terse版)

​ 马拉车算法是用来求最长回文子串的,它充分了利用了回文串镜像对称相等的特征,每次维护最右边的回文串,分类讨论得出递推式。

2023-08-25 23:55:53 299

原创 【算法】 马拉车Manacher算法(最长回文子串)(terse版)

​ 马拉车算法是用来求最长回文子串的,它充分了利用了回文串镜像对称相等的特征,每次维护最右边的回文串,分类讨论得出递推式。

2023-08-25 23:54:52 192

原创 【线性DP】模型总结(terse版)

​ dp[i]表示以i结尾的最长上升子序列的长度。​ 对于每个i,遍历j=1~i-1,若a[j] < a[i], 则dp[i] = max(dp[i], dp[j] + 1);

2023-08-23 13:09:17 186

原创 暑期集训反思与计划

这次考得不好,表面原因在于第一题没有推出公式,包括上次也是这样(这个问题最近才发现),每次推到一半觉得不对就没有继续推了,就比如这次,我把完全平方拆开了,发现不能降低时间复杂度,于是没有继续推,但是后来发现只需再合并一步就好了。

2023-07-22 21:52:53 106

原创 C++数据结构【树状数组】

树状数组是类似线段树的一个数据结构,支持单点修改、查询,区间修改、查询等操作,当你用查分TLE时,你就可以用树状数组解决。lowbit是树状数组中计算一个节点指向另外哪一个节点的函数。就如图1号节点指向的是2号节点是因为1的lowbit值为2,而6号节点指向8号节点是因为6的lowbit值为8.

2023-06-19 13:31:02 393

原创 【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

2023-06-10 23:41:14 1264

原创 【贪心经典题目】最大整数-(c++详解)

设有n(n≤20)个正整数(每个在int范围内),将它们连接成一排,组成一个最大的多位整数。例如n=3,3个整数分别是13、312和343,连接成最大的整数为34331213。即:若大小不同,则比较是否前一部分完全相同,如果是,则可以比较短字符串的首位和长字符串的短字符串长度+1位即可。否则按照正常情况排序。当我第一眼看到这个题目的时候,我第一反应就是直接排序字符串,因为首字母大的字符串肯定要排在前面,所以,直接按字典序sort.一行,一个数,表示连接成的最大整数。第二行为n个正整数,分别用空格分隔。

2023-05-31 13:14:55 1052

原创 【拒绝爆零】C++编程考试常见栽区

一些常见的sort,include,这些就不一一列举了。主要是y1,j1,y1是一个数学库里的名称,定义时切记不能用,j1则是在c++14的环境下不能用,这也是经常在大赛上出现的错误。

2023-05-25 22:20:33 777

原创 周赛 Round#3 题解

这是周赛第三轮。//涉及隐私原因,博文里不放题目,要看的去划分字符串贪心&动态规划组合线段递推美味沙拉最大化运算式汤姆猫与台球小组长。

2023-05-22 13:31:34 390

原创 5月14--5月18日 编程学习情况汇报

1、周赛二补题 AC了最小得分问题,总分367(5月14日)2.对于周赛二行走的机器人问题和对考试的反思与计划,写成一篇博客:https://blog.csdn.net/BZ_C25LX/article/details/130674882?spm=1001.2014.3001.5501(5月15日)

2023-05-18 23:12:15 80

原创 【图论】图的存储、遍历与拓扑排序

5月16-5月18日学习内容。

2023-05-18 22:56:48 371

原创 周赛 Round#2 题解

这是系列周赛的第二次,于5月13日8:30开始,12:00结束。题目序号题目名称时间限制空间限制题目类型评测方式考查知识题目难度1行走的机器人 robot1000ms256MiB传统题文本比较模拟/深搜中等2多米诺骨牌涂色 paint2000ms256MiB传统题文本比较递推中等+3最小得分 mex1000ms512MiB传统题文本比较中等+4幸运数字 lucky2000ms512MiB传统题文本比较数论(gcd)难。

2023-05-14 23:12:40 644

原创 【动态规划】

DP全名动态规划,顾名思义,就是在动态中调整数据,主要核心是推导出状态转移方程,再通过循环的方式来将数据赋值给数组。

2023-05-12 16:14:38 74

原创 【递推专题】常见的递推“模型”总结

其实递推和递归原理上近似,使用时经常搭配在一起。如:递推需要递归函数实现,而递归则需要递推式,两者相通。这几个“模型”,很多思想都是将一个整体分为最后一个和上面的全部,然后不断分下去,得到结果。

2023-05-05 22:37:08 669

原创 周赛#Round 1 题解

1.当出现2个0相邻的时候(竖着,横着或对角),需要覆盖的次数就等于1的个数。2.else if 如果1的个数等于输入的总数,则覆盖的次数等于1的个数-2。本题输入数据不严格按照每行x个,所以需要通过输入字符串的方式来输入。3.else 当输入中存在0却不相邻时,覆盖的次数等于1的个数-1。这是一道数学构造的题目,只要找到覆盖的规律,就可以。

2023-05-05 16:20:25 134

原创 [MAY DAY]五一综合训练 之——最值问题

适用于对时间要求很高的题目,双指针算法的难点在于找到什么时候移动有指针,什么时候移动左指针,这种算法大部分是单向移动,但有时需要双向移动(就比如本题)。第一个循环是为了满足题目中两端差距小于m,第二个循环是找到第一个

2023-05-02 16:35:11 539

原创 卫星地图——MAP(c++)

一张矩形的卫星地图,有M行N列。行列中的0表示空地,1表示有建筑。有3种类型的建筑:L型: 仅在一行上占据连续的若干个格子,长度至少为2,至多为NC型:仅在一列上占据连续的若干个格子,长度至少为2,至多为MS型:仅占据单个格子。在同一行上或者同一列上可以出现多个建筑。不同的建筑不会相邻,相邻是指上,下,左,右,以及左上,左下,右上,右下等八个方向。求出不同类型的建筑的数量及长度。

2023-02-01 20:14:25 1228

原创 01背包——二维动态规划【c++】代码实现

今天学了01背包,就想来讲一讲,正好回顾一下(BZOJ上的题目)。

2023-01-17 22:46:24 829

原创 寒假集训一期(5)——高精度(上)加法与减法

这一篇博文讲的是加法和减法,下一篇博文主要讲乘法和除法不管是加法运算还是减法运算,都用到了模拟的思想,可见模拟十分重要,在你做题时没有思绪时,不妨用用模拟来实现一下。

2023-01-15 18:23:06 224

原创 2023/1 寒假期间自学c++计划安排

寒假一期学习是在线下进行的,总的来说,非常充实,也很有收获,成体系的学习了 二分,高精度,函数,结构体,STL 等等内容,既开心有学到了知识。在这7天的集训中,我们是讲一道题做一道题,这样让我们的知识掌握的很牢固,本来计划的是上完课把这几天的只是做一个总结,写几篇blog,现在高精度还没来得及写,总的来说,掌握了80%-85%,有一些很复杂的知识,需要尽快消化,比如高精度,课堂上讲的思路听懂了,可就是AC不了,只能写个大概,需要再次理解。

2023-01-15 15:55:03 5404 3

原创 寒假集训一期(3)——函数

在这个代码里,我们向a函数传了2个参数,其中x被返回,而s不被返回,所以这个a函数里的s为局部变量,不适用于主函数,换句话说,a函数里的s并非主函数里的s,所以s并未被改变,从而输出了1,同理,在这个主函数中的x被赋值了,它的值就是函数的返回值,返回值为1,所以x=1;这一次,我们没有给全局变量x赋值,所以我们输入什么就会输出什么,因为函数里的局部变量x,s并非主函数里的全局变量,所以不管你在函数里做了些什么,只要不赋值,两个变量根本不同,所以输出和输入一样。第四行,一个整数. 第五行,一个整数.

2023-01-12 09:31:31 104 1

原创 寒假集训一期(2)——二分查找与二分答案

二分这个词大家应该不会陌生,他是一种思想,经常用来搜索或排序,二分思想就是说要把一串数字对半切开,前提是必须有序,然后比较中间数,不断的缩小范围。一般的线性查询算法时间复杂度为O(n)而二分的时间复杂度仅有O(logn)

2023-01-12 09:31:21 96

原创 寒假集训一期(1)——思维训练

本题运用到了DP的状态转移思想,和方向数组来实现,思维上难度较大。

2023-01-12 09:30:27 130

原创 字符串模式匹配(一)——Karp-rabin算法【化串为数】(上)

字符串是一个非常庞大的家族,也是一个非常好用的数据结构,在字符串的问题中,最常见的莫过是模式匹配问题,也就是:有一个模式串和主串,你需要判断这个模式串是否是主串的一部分。

2022-12-30 08:25:03 118 2

原创 【圣诞专场】—— 用python海龟库实现圣诞装饰(圣诞树,拐杖糖,圣诞火车,圣诞雪人,圣诞祝福)~~c++《铃儿响叮当》

一年一度的圣诞节又到了,相信大家眼中满是圣诞树、圣诞老人、圣诞麋鹿的样子吧,小编觉得圣诞节氛围浓浓,再用电脑实现以下再适合不过了,所以今天小编写了一篇圣诞专场的博文,也请大家指教,编译环境文章最后有讲。

2022-12-27 08:46:07 1337 3

原创 c++基础教程(1)编译环境配置,头文件,数据类型

这时候点进去第一个,选择您最信任的下载方式,(北京电信可以哟),下载好后,会出现一个安装指南(一定要保存好,出问题了还能重新下载)这时候你点开安装包,先选择你要下载的盘,然后一路点确定或者下一步,中间会提醒你设置主题,管不管都行,因为你下载好了也能设置,最后这个编译器就轻松下载好咯。我们在浏览器上搜索Dev c++,这是一个最常用的编译器,兼容性也很好,主要版本有5.11和6.7.5,这两个是最经典的版本,5.11最稳定,而6.3是最新的版本,其中多了很多功能,我们先来看5.11的下载。

2022-12-23 14:37:17 507 1

原创 【图】最小生成树问题——prim普利姆算法和kruskal克洛斯卡尔算法

图是一种常见的高级数据结构,其中最小生成树也是图中的一个重要问题板块,我们先来说一下几个基本概念,懂的可以直接跳过:1、连通图:没有方向且每两点之间都有一条线段直接连接。2、强连通图:有方向且每两点之间都有两条线段双向连接。3、生成树:每个顶点至少有一条线段与它连接且所有顶点同处一棵树中。4、最小生成树:权值之和最小的生成树。我们今天要解决的问题是如何构造一棵最小生成树,我们先看克洛斯卡尔kruskal算法。

2022-12-13 11:11:03 178

原创 c++【线段树】详解 & 基本操作

这时我们关注红色的字体,我们发现,括号里的第一项a[x-y+1]中x就是当前树的下标,而他减去的红色字体,就是左边第二行得出的二进制数从右往左看第一个1和他之后的0所组成的数字,就如:6的二进制是110,从右往左看第一个1在第二位,所以我们只看后两位,得出10,10的十进制为4,所以减去4。节点的下标(因为是数组)是他的父节点的1/2,即Lson=root

2022-12-12 14:57:05 344

原创 【栈的应用】中缀,后缀表达式求值以及转换【简单计算器】

表达式就是一个算式,一般分为三种:前缀,中缀,后缀。中缀表达式就是我们在数学计算中所接触的表达式,而前缀或后缀就是把运算符的位置改变了,计算机更倾向于计算前缀或后缀表达式,因为他们不用考虑优先级。我们经常看到这种题目。

2022-12-08 17:30:45 492 1

转载 Dev-c++编译器调试

目前,多数人使用的都是 Windows 10 操作系统,但遗憾地是,即便是最新版本的 Dev C++(目前的最新版本是 5.11),在 Windows 10 上的兼容性并不好,有时会出现各种奇葩的问题。单步进入:功能和“下一步”按钮类似,不同之处在于,当程序中调用某个自定义的函数时,此按钮可以进入到函数内部,继续调试函数内部的代码,而 “下一步” 按钮不会;所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。

2022-11-30 09:44:25 1548

原创 十大排序之——桶排序,双刃剑

桶排序就是一把双刃剑,在关键时刻他可以使我们用不超时,但有时也会是内存爆炸,一定要谨慎使用。下一篇将堆排序。

2022-11-28 15:47:51 151 2

原创 DP解决最长上升子序列,最大子序列的三个经典问题(写了一些做题的心得)

首先,我们需要沿用上一道题的思想,半贪心,不同的是,我们不能仅仅在前一个数寻求最值了,我们要全局搜索,那问题就来了,我们以什么因素决定选哪个变量呢?1、**题目要求上升,我们肯定要选比自己小的变量。2、尽量让这个值大**

2022-11-27 22:32:57 398

原创 【差分】【前缀和 & 二维前缀和】详解

每一次操作记录下他的一头一尾,也就是l,r这是我们在l处记录一个加1,在r+1处记录一个减一,这就表示从l,到r,每个数需要执行l的操作,即满足题目的意思,我们可以用一个l数组来存储

2022-11-26 17:53:48 294 1

原创 威尔逊定理证明(上)

今天我们要证明数论中一个很有名的定理:威尔逊定理。这个定理是这样的:当p为质数时,一定满足p-1的阶乘除以p的余数一定为-1.用数学语言表达就是:(p-1)!=-1(mod p)接下来我们要证明这个定理,在这一篇文章中,我们会讲解到用反证法证明,下一篇会用正面推理证明。

2022-11-26 16:18:10 630

原创 寒假集训一期(4)—— c++【STL栈和队列】基本操作函数和模板习题

有两种方法://定义类型为vector的vector for(int i = 0;i ++) {//实现二维 }//直接定义二维int//直接定义二维这道题可以让我们更深刻的理解栈的基本概念。遇到这种题目,我们可以利用栈的概念解决,首先先找准目前没有进过栈的第一个数,然后将目前未进栈元素到我们刚刚找的那个元素全部依次进栈,然后查看出栈顺序是否合法,依次模拟,即可得出结果。

2022-11-23 11:31:50 1225

原创 二叉搜索树 详解,中序遍历伪代码 ,AVL原理讲解【c++详解】(含代码)

二叉查找树的基本操作和复杂度分析,AVL树原理讲解

2022-11-13 11:37:35 1143

原创 哈夫曼编码(1)哈夫曼编码的基本概念及应用【c++】和哈夫曼树算法的基本思想

哈夫曼算法先是定义多个子树,有多少个字符就定义多少个树,这些树刚开始时都存于一个集合中,每一步把当前森林中频率最小的两棵子树合并为一棵子树 ,原始树作为子节点或子树,他的父亲的权值就是两个子节点的权值和,这可子树只能是二叉树,这一棵新树也存放与集合中,并代替掉了刚刚的两棵子树,这棵新树的频率就是那两棵子树的频率和…刚才说了,我们要尽可能让哈夫曼编码的值小,这也是为什么要用最小的权值子树作为子树,这样可以让深度越深的字符权值越小,那么,哈夫曼编码的计算过程为:每个字符权值*长度之和。下面是此树的构造过程。

2022-11-11 11:21:07 1684

圣诞树源码,用python海龟库画出

走过路过不要错过哟,用python海龟库画出简易圣诞树,送圣诞礼物最可以体现出心意了,简洁好看,易实现,内含源代码和查看链接,复制即可,内含圣诞树,圣诞小火车,拐杖糖,小雪人,心意满满,希望大家下载哟,用海龟编辑器运行哟,海龟编辑器网址:https://turtle.codemao.cn/editor/python_web

2022-12-24

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

TA关注的人

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