自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手撕顺序表

本篇文章主要代码实现纯c结构体的顺序表和vector。

2024-08-25 23:38:19 686

原创 2024SZTU_ACM新生夏令营第四次训练赛题解

本题的思路来源是未来我们要学的一种高级算法和高级数据结构 ---- 线段树的原理,学完这个算法之后我们看这道题可能就相对比较简单哦,当然不学也是完全可以做出来的。先遍历一遍字符串,看一下每个字母的出现次数,再遍历一下26个字母来看看,每个出现次数对应的字母的个数,然后不满足条件的No,满足的Yes。给你一个字符串,看这个字符串好不好,好的要求是1~最大的字母出现次数中满足该次数的字母的个数要不是0,要不是2,否则这个字符串不好。思路二的话大家也是要看上面内张图来理解,每次我尽可能的来选取大的线段的即可。

2024-08-23 21:04:22 920

原创 SZTU_Vjudge 线段树(持续更新中)

Lxh好强

2024-08-18 22:11:49 111

原创 深入解析AC自动机(含Kmp和Trie树)

Trie, 又叫字典树或前缀树,用来储存和查询字符串。那Trie树是怎么储存字符串的呢?acdachsfaeadsbf,Trie树将以下的形式来储存字符串:比如我们走1 -> 2 -> 4,存储的就是字符串acd。给定一个长度为n的文本S,以及k个平均长度为m的模式串P1, P2, P3...Pk,要求搜索这些模式串出现的位置。没错,这就是著名的多模匹配问题,如果我们直接用kmp来进行每次查询的话,则时间复杂度高达O(k * (n + m)), 当k足够大时绝对会超时,那么怎么办呢?

2024-08-17 15:44:46 650

原创 2024SZTU_ACM新生夏令营第三次训练赛题解

n最大为1e18,同时因为要是3的幂,所以最大只需要i从1枚举到1e6,每个数的数位最大为63,所以枚举一遍同时判断回文是不可能超时的。给你n个一对l,r(l <= r)的数,看你是否可以给出一组序列A,使得Li <= Ai <= Ri, 同时序列A所有的数加起来等于0。然后我们构造序列,我们可以先存入最小值,同时观察剩下的最大值可不可以补充这些最小值,然后快不行时就赶紧补充最大值。给你两个数, 分别为A和B,输出一个在0和9之间而不等于A + B(A + B <= 9)的数。题目怎么说,我们就怎么做。

2024-08-16 21:02:11 908

原创 2024SZTU_ACM新生夏令营第二次训练赛题解

题解难度分布D题目大意题目思路题目代码E题目大意题目思路题目代码B题目大意题目思路题目代码C题目大意题目思路题目代码G题目大意题目思路题目代码A题目大意题目思路题目代码F题目大意题目思路题目代码难度分布#mermaid-svg-XvQeEwzrqwE2rs6w {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-XvQeEwzrqwE2rs6w .error-icon{fi

2024-08-09 21:04:14 879

原创 2024SZTU_ACM新生夏令营第一次训练赛题解

的题,先将人的信息从大到小排序,这样只需要看第t个(下标为 t - 1)人什么时候达到p, 就是最少的时间。给你一个n和一个洗手液m, 然后n个每次输入一个数为怪物的手,用洗衣液洗怪物的手,看依次洗能给几个完整的怪物洗手。给你一个t 和 p, 然后给你n个人的头发长度,每天增加1, 看第几天有至少t个人的头发的长度增加到p。直接用循环语句,每次洗完,m减去x(怪物的手),只要m >= 0就让cnt ++.给你一个坐标x, y, 然后再给你四个数,然后问你(x, y)对应的内个数是哪个。

2024-08-02 21:32:24 827

原创 SZTU_Vjudge hash

先将两个字符串进行字符串哈希,然后第一想法是枚举长度,但暴力枚举的话会tle,然后我们发现我们是找最长的,所以满足二段性,所以我们可以进行二分答案,然后在二分中我们把哈希值再存到另外两个数组,然后在来一个二分查找看有没有相等的哈希值。本题就是说,每次在一个东西里面找,能直接找到就答案加一,同时次数加一,没有找到的话然后如果这个东西的容量未满,那么就直接加进去,如果满了,就把其中次数最小(相同找先进)的删除,然后加进去。给你一个n,再给你一个字符串,看长度为n的不同的字符串的数量。

2024-04-05 16:46:19 694

原创 带你手撕哈希(hash)表【数组】

假如我们要映射到1e5,这时我们需要开一个比这个数据范围更大一点约为2到3倍的数组,然后通过y = x % mod,找到y,看看y这个坑位里面有没有人,没人我就蹲,有人我就找下一个。h函数存的值为前几个字母所映射的哈希值,而怎么把字符串转化为哈希值呢,我们这里采用一个奇妙的办法——进制。,比如我们设较大范围的数据为x,较小范围的数据为y,常用的函数为 y = x % mod。哈希的本质是映射,把一个较大范围的数据映射到一个较小的数据里面,从而。我们把一个很大范围的数据映射到一个较小范围的数据中,则。

2024-03-24 10:53:25 1169 1

原创 带你入门C++

本篇文章主要是讲的有关C++在一些语法层面对C语言的优化,读者需要有一定的C语言基础。当年C++之父本贾尼博士一看这C语言不是很好用,于是就在C语言的基础上加了很多东西,并且引入类,对象, STL等一系列东西。使用命名空间的目的:对标识符的名称进行本地化,以避免命名冲突或名字污染。那么怎么解决这个问题呢?而这个namespace就是我们所说的命名空间(haha,其实你看英文也能认出来)。而我们如果不用这个,那代码是这样的。相信我们都注意到这个符号,那这个符号叫做域作用限定符。

2024-03-03 22:47:18 938

原创 SZTU__Vjudge 并查集

给出 A 地区的村庄数 NN,和公路数 MM,公路是双向的。朋友的朋友一定还是朋友。小明和小红是朋友关系,小明的编号是1,小红的编号是-1,通过小明和小红的这层关系看看最多能凑成多少对情侣。主要是看看通过小明,a公司有多少人可以和b公司搭上关系,再看看通过小红,b公司有多少人可以和a公司搭上关系,取最小值即可。将每条道路的时间从小到大排序,每次合并道路的时候,都遍历一遍看一看是不是所有的道路都合并了,是的话直接输出此时的时间。给定一堆字符串,前面是‘#’则表明是父亲,前面是‘+’则表明是儿子,前面是‘?

2024-02-23 15:12:50 327

原创 SZTU__Vjudge 搜索和树

搜索和树A - 迷宫题目大意思路AC代码B - 马的遍历题目大意思路AC代码C - 填涂颜色题目大意思路AC代码D - 棋盘问题题目大意思路AC代码E - 马走日题目大意思路易错点AC代码F - 红与黑题目大意思路AC代码G - 奇怪的电梯题目大意思路易错点AC思路H - 迷宫问题题目大意思路AC代码I - Meteor Shower S题目大意思路AC代码J - Corn Maze S题目大意思路易错点AC代码K - 八皇后 Checker Challenge题目大意思路AC代码L - 单词接龙题目大意思

2024-02-23 00:47:37 767

原创 算法小总结(1)

技巧:重量相同的一堆小球中找不同问题,n - 1有几个二进制位就代表至少要几个人,如 n = 10, 则 0 ~ 9 为0000 ~ 1111,说明至少需要4个人,n = 8, 则 0 ~ 7为000 ~ 111,则至少需要3个人。解法:假如一维数组的下标是 k, 要转化成n行n列的二维数数组,则x = k / n, y = k % n;Note:这里的窗口滑动并非指的是滑动窗口(即单调队列)问题,而是处理问题的技巧。题目 : 来自acwing- bfs的八数码问题。

2024-01-22 00:02:28 450

原创 带你手撕堆【数组】

删除时就有讲究了,删除栈顶的元素,可能你会想到队列删除队头的方式,但其实是不对的,因为整个堆的二叉树结构需要他的下标来维护,所以不能用队列删除队头的方式。1.大根堆(又称最大堆) : 堆中的每一个父结点都大于等于其子节点的值,即头结点为该堆的最大值。2.小根堆(又称最小堆): 堆中的每一个父节点都小于等于其子节点,即头节点为该堆的最小值。这是常见的堆的五种操作(下面两种操作用STL无法实现),接下来让我们用数组来实现吧!由图可知,建堆的时间复杂度为O(n),堆排序的时间复杂度为O(n log n)。

2023-12-30 00:48:11 965 1

原创 带你手撕栈和队列【数组】

为什么把栈和队列放在一块讲呢?因为我认为这两种数据结构的代码实现和代码思想基本上可以说是一模一样的。这两中数据结构算是比较简单的,但用途却是很广泛的,非常重要。

2023-12-22 20:29:22 867

原创 带你手撕静态链表【数组】

众所周知,其实在企业做项目中,对于链表的使用,更多是偏向于用结构体和指针的动态链表,那为什么在算法竞赛中我们还要学会用数组来模拟链表呢,因为用结构体和指针的话,在oj题时会很慢,很容易TLE,相比之下数组的静态链表就快多了。

2023-11-24 19:52:07 471

空空如也

空空如也

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

TA关注的人

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