- 博客(188)
- 收藏
- 关注
原创 5524. 多数意见-模拟思维题
农夫约翰有一项重要的任务——弄清楚要为他的奶牛们购买什么类型的干草。农夫约翰的 N 头奶牛编号为 1 到 N,每头奶牛喜欢恰好一种类型的干草 hi。他希望他的所有奶牛都喜欢同一种干草。为了实现这一目标,农夫约翰可以主持焦点小组访谈。每一次焦点小组访谈,约翰都可以自由选择任意多个的奶牛构成访谈小组,共同参加访谈。如果有一种干草是小组中超过一半的奶牛喜欢的,则此次焦点小组访谈结束后,组内所有奶牛最终都会喜欢这种干草。如果不存在这样的干草,那么奶牛们就不会改变她们喜欢的干草类型。
2025-04-08 19:18:05
83
原创 5438. 密接牛追踪2-模拟
农夫约翰有 N 头奶牛排成一排,从左到右依次编号为 1∼N。不幸的是,有一种传染病正在蔓延。最开始时,只有一部分奶牛受到感染。每经过一个晚上,受感染的牛就会将病毒传染给它左右两侧的牛(如果有的话)。一旦奶牛被感染,它就会一直被感染,无法自愈。给定一个经过若干个夜晚后的奶牛的整体状态,其中哪些奶牛已经被感染,哪些奶牛尚未被感染统统已知。请你计算,最开始时就受到感染的奶牛的最小可能数量。
2025-04-08 15:28:32
26
原创 5437. 拐杖糖盛宴-模拟
农夫约翰的奶牛们非常爱吃甜食,尤其爱吃拐杖糖。约翰一共有 N 头奶牛,编号 1∼N,其中第 ii头奶牛的初始高度为 ai。约翰给奶牛们准备了 M 根拐杖糖,编号 1∼M,其中第 i 根的高度为 bi。约翰会按照糖果的编号顺序,每次拿出一根糖果喂给奶牛们,直到所有糖果都被喂完为止。每当拿出一根糖果后,约翰会将其上端固定悬挂,下端自由下垂至刚好接触地面。然后,奶牛们按照编号顺序,依次走到糖果面前,将糖果自下而上的啃食至自己的高度(因为更高的地方吃不到了)。
2025-04-08 14:26:47
254
原创 6135. 奶牛体检-枚举
农夫约翰的 N 头奶牛站成一行,奶牛 1 在队伍的最前面,奶牛 N 在队伍的最后面。农夫约翰的奶牛也有许多不同的品种。他用从 1 到 N 的整数来表示每一品种。队伍从前到后第 i 头奶牛的品种是 ai。农夫约翰正在带他的奶牛们去当地的奶牛医院进行体检。然而,奶牛兽医非常挑剔,仅愿意当队伍中第 ii 头奶牛为品种 bibi 时对其进行体检。农夫约翰很懒惰,不想完全重新排列他的奶牛。他将执行以下操作。农夫约翰想要衡量这种方法有多少效果。
2025-04-07 19:49:37
215
原创 6134. 哞叫时间II -枚举的思想
农夫约翰正在试图向埃尔茜描述他最喜欢的 USACO 竞赛,但她很难理解为什么他这么喜欢它。他说「竞赛中我最喜欢的部分是贝茜说『现在是哞哞时间』并在整个竞赛中一直哞哞叫」。埃尔茜仍然不理解,所以农夫约翰将竞赛以文本文件形式下载,并试图解释他的意思。竞赛被定义为一个包含 N 个整数的数组 a1,a2,…,aN。农夫约翰定义哞叫为一个包含三个整数的数组,其中第二个整数等于第三个整数,但不等于第一个整数。一种哞叫被称为在竞赛中发生,如果可以从数组中移除整数,直到只剩下这一哞叫。
2025-04-07 17:11:06
96
原创 6118. 蛋糕游戏-前缀和+枚举
贝茜和埃尔茜发现了一行 N 个蛋糕(N 为偶数),大小依次为 a1,a2,…,aN。两头奶牛都想吃到尽可能多的蛋糕。但是,作为非常文明的奶牛,她们决定玩一个游戏来分割蛋糕!游戏在两头奶牛之间轮流进行回合。当只剩下一个蛋糕时,贝茜吃掉它,而埃尔茜吃掉她藏起来的所有蛋糕。如果两头奶牛都采取最优策略以最大化她们吃到的蛋糕量,并且贝茜先进行回合,那么每头奶牛将会吃到多少蛋糕?
2025-04-07 17:02:34
179
原创 6123. 哞叫时间-暴力枚举
农夫约翰正在试图向埃尔茜描述他最喜欢的 USACO 竞赛,但她很难理解为什么他这么喜欢它。他说「竞赛中我最喜欢的部分是贝茜说 『现在是哞哞时间』并在整个竞赛中一直哞哞叫」。埃尔茜仍然不理解,所以农夫约翰将竞赛以文本文件形式下载,并试图解释他的意思。竞赛被定义为一个长度为 N 的小写字母字符串。一种哞叫一般地定义为子串 cicjcj,其中某字符 ci 之后紧跟着 2 个某字符 cj,且 ci≠cj。
2025-04-07 16:26:38
137
原创 6122. 农夫约翰的奶酪块-模拟,枚举
农夫约翰有一块立方体形状的奶酪,它位于三维坐标空间中,从 (0,0,0) 延伸至 (N,N,N)。农夫约翰将对他的奶酪块执行一系列 Q 次更新操作。对于每次更新操作,农夫约翰将从整数坐标 (x,y,z)(到 (x+1,y+1,z+1)( 处切割出一个 1×1×1的奶酪块,其中 0≤x,y,z<N。输入保证在农夫约翰切割的位置上存在一个 1×1×1的奶酪块。由于农夫约翰正在玩牛的世界,当下方的奶酪被切割后,重力不会导致上方的奶酪掉落。
2025-04-07 16:02:23
154
原创 KCP原理
发送端发送了1,2,3,4,5几个包,然后收到远端的ACK: 1, 3, 4, 5,当收到ACK3时,KCP知道2被跳过1次,收到ACK4时,知道2被跳过了2次,此时可以认为2号丢失,不用等超时,直接重传2号包,大大改善了丢包时的传输速度。ARQ模型响应有两种,UNA(此编号前所有包已收到,如TCP)和ACK(该编号包已收到),光用UNA将导致全部重传,光用ACK则丢失成本太高,以往协议都是二选其一,而 KCP协议中,除去单独的 ACK包外,所有包都有UNA信息。KCP的ACK是否延迟发送可以调节。
2025-04-02 20:16:25
295
原创 1371. 货币系统-dp背包问题
给定 V种货币(单位:元),每种货币使用的次数不限。不同种类的货币,面值可能是相同的。现在,要你用这 V种货币凑出 N 元钱,请问共有多少种不同的凑法。
2025-03-30 19:44:52
162
原创 Linux I/O 神器 io_uring
io_uring主要通过用户态与内核态共享内存的途径,来摒弃使用系统调用来提交 I/O 操作和获取 I/O 操作的结果,从而避免了上下文切换的情况。另外,由于用户态进程与内核态线程通过共享内存的方式通信,从而避免了内存拷贝的过程,提升了 I/O 操作的性能。所以,io_uring 主要通过两个优化点来提升 I/O 操作的性能:摒弃使用系统调用来提交 I/O 操作和获取 I/O 操作结果。减少用户态与内核态之间的内存拷贝。
2025-03-30 15:15:35
598
原创 linux网络编程
分为两种:服务端处理接收客户端的连接;服务端作为客户端 连接第三方服务;分为两种:主动断开和被动断开从读缓冲区中读取数据往写缓冲区中写数据;
2025-03-30 14:54:37
541
原创 c++20 协程
C++20协程只是提供协程机制,而不是提供协程库。C++20的协程是无栈协程,无栈协程是一个可以挂起/恢复的特殊函数,是函数调用的泛化,且只能被线程调用,本身并不抢占内核调度。 C++20 提供了三个新关键字(co_await、co_yield 和 co_return),如果一个函数中存在这三个关键字之一,那么它就是一个协程。也就是说只提高构建协程的一种机制,本身并不提供协程库 协程相关的三个关键字:co_await、co_yield与co_return。
2025-03-29 19:04:47
963
原创 731. 毕业旅行问题-acwing-状态压缩dp
小明目前在做一份毕业旅行的规划。打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。由于经费有限,小明希望能够通过合理的路线安排尽可能的省些路上的花销。给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。:北京为 1 号城市。
2025-03-27 18:52:44
139
原创 1264. 动态求连续区间和-acwing -树状数组
给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和。
2025-03-25 20:16:27
171
原创 1265. 数星星-acwing 树状数组
什么是树状数组:题目描述:天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。本题采用数学上的平面直角坐标系,即 x 轴向右为正方向,y 轴向上为正方向。如果一个星星的左下方(包含正左和正下)有 kk 颗星星,就说这颗星星是 kk 级的。例如,上图中星星 5 是 3级的(1,2,4 在它左下),星星 2,4 是 1 级的。例图中有 1 个 0 级,2个 1 级,1 个2 级,1个 3 级的星星。给定星星的位置,输出各级星星的数目。
2025-03-25 20:01:07
195
原创 c++学习:智能指针的学习
shared_ptr章节中提到不能直接将this指针返回shared_ptr,需要通过派生 std::enable_shared_from_this类,并通过其方法shared_from_this来返回指针,原因是 std::enable_shared_from_this类中有一个weak_ptr,这个weak_ptr用来观察this智能指针,调用 shared_from_this()方法是,会调用内部这个weak_ptr的lock()方法,将所观察的shared_ptr返回,再看 前面的范例。
2025-03-23 17:02:58
810
原创 协程的调度的对称与非对称
下图表示非对称协议,可以有两个操作,就是resume和yield,从哪里resume的,yield就会回到该位子;下图表示的就是对称协程,进入到该协程之后只能有一个操作就是yield,把cpu让回给调度器;
2025-03-22 20:43:52
222
原创 1413. 矩形牛棚-acwing-单调栈的思想
作为一个资本家,农夫约翰希望通过购买更多的奶牛来扩大他的牛奶业务。因此,他需要找地方建立一个新的牛棚。约翰购买了一大块土地,这个土地可以看作是一个 R 行(编号 1∼R)C列(编号 1∼C)的方格矩阵。不幸的是,他发现其中的部分方格区域已经被破坏了,因此他无法在整个 R×C 的土地上建立牛棚。经调查,他发现共有 P 个方格内的土地遭到了破坏。建立的牛棚必须是矩形的,并且内部不能包含被破坏的土地。请你帮约翰计算,他能建造的最大的牛棚的面积是多少。
2025-03-22 12:11:46
263
原创 c++项目-KV存储-模仿redis实现kv键值对存储的基本功能。
本文档深入介绍了基于数组、哈希表和红黑树的键值存储引擎的设计与实现。文档首先阐述了系统的总体架构与类图关系,之后分别对底层存储结构进行了详细解释,涵盖了自定义的内存管理函数以及各数据结构的具体操作方法。在网络通信方面,重点讲解了Reactor和io_uring这两种主流的异步IO模型及其应用场景,尤其强调了它们各自的特点与优势。使用场景及目标:帮助开发者理解高级键值对数据库系统背后的工作原理,为构建高效可靠的分布式缓存或者日志系统打下坚实的基础。:数组、哈希与红黑树实现及其在网络I/O中的应用。
2025-03-22 11:25:54
271
原创 C++ 多线程编程-各种锁
上边这个表可以看出来,shared_lock与unique_lock的接口一模一样,他们唯一的区别在于,unique_lock是以排他式上锁,同一时刻只允许一个线程获取锁;比如网吧,就那么多位置,满了网管就不会给你开机子,必须等有人下机才能上机,这里的网吧就是共享资源,他有并发数量限制,网管就类似信号量的功能,限制网吧的同时访问数量。:shared_mutex算是对unique_lock的补充,因为unique_lock在存在多个只读线程的情况时,会有较大的性能损失,因为只读线程之间加锁是不必要的。
2025-03-20 21:42:44
848
原创 1221. 四平方和 -蓝桥杯真题-哈希函数思想
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 44 个正整数的平方和。如果把 00 包括进去,就正好可以表示为 44 个数的平方和。比如:对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 44 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d为联合主键升序排列,最后输出第一个表示法。
2025-03-19 19:40:36
216
原创 528. 奶酪-并查集的思想
现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面为 z=0,奶酪的上表面为 z=h。现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞;
2025-03-18 19:13:51
337
原创 687. 扫雷-acwing-dfs
扫雷是一种计算机游戏,在 20 世纪 80年代开始流行,并且仍然包含在某些版本的 Microsoft Windows 操作系统中。在这个问题中,你正在一个矩形网格上玩扫雷游戏。最初网格内的所有单元格都呈未打开状态。其中 M个不同的单元格中隐藏着 M个地雷。其他单元格内不包含地雷。你可以单击任何单元格将其打开。如果你点击到的单元格中包含一个地雷,那么游戏就会判定失败。
2025-03-17 19:26:09
266
原创 1233. 全球变暖-BFS思想
其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。
2025-03-16 19:40:01
199
原创 1355. 母亲的牛奶-BFS
农夫约翰有三个容量分别为 A,B,C 升的挤奶桶。最开始桶 A 和桶 B 都是空的,而桶 C 里装满了牛奶。有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。这一过程中间不能有任何停顿,并且不会有任何牛奶的浪费。请你编写一个程序判断,当 A桶是空的时候,C 桶中可能包含多少升牛奶,找出所有的可能情况。
2025-03-16 18:59:17
117
原创 2060. 奶牛选美 -DFS
听说最近两斑点的奶牛最受欢迎,约翰立即购进了一批两斑点牛。不幸的是,时尚潮流往往变化很快,当前最受欢迎的牛变成了一斑点牛。约翰希望通过给每头奶牛涂色,使得它们身上的两个斑点能够合为一个斑点,让它们能够更加时尚。其中,XX 表示斑点部分。如果两个 XX 在垂直或水平方向上相邻(对角相邻不算在内),则它们属于同一个斑点,由此看出上图中恰好有两个斑点。约翰牛群里。约翰希望通过使用油漆给奶牛尽可能少的区域内涂色,将两个斑点合为一个。请帮助约翰确定,为了使两个斑点合为一个,他需要涂色区域的最少数量。
2025-03-13 19:18:14
158
原创 422. 校门外的树-acwing-区间合并
某校大门外长度为 L 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置,另一端在 L 的位置;数轴上的每个整数点,即 0,1,2,……,L都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
2025-03-05 20:39:14
178
原创 1343. 挤牛奶-acwing-区间合并
每天早上 5 点,三名农夫去牛场给奶牛们挤奶。现在从 5点开始按秒计时,第一名农夫在第 300秒开始给牛挤奶,并在第 1000秒停止挤奶。第二名农夫在第 700 秒开始给牛挤奶,并在第 1200秒停止挤奶。第三名农夫在第 1500 秒开始给牛挤奶,并在第 2100秒停止挤奶。
2025-03-05 20:12:16
215
原创 2868. 子串分值 -贡献法-蓝桥杯真题
对于一个字符串 S,我们定义 S 的分值 f(S)为 S 中恰好出现一次的字符个数。例如 f(“aba”)=1,f(“abc”)=3, f(“aaa”)=0。现在给定一个字符串 S[0…n−1](长度为n),请你计算对于所有 S 的非空子串 S[i…j](0≤i≤j<n), f(S[i…j])的和是多少。
2025-03-03 18:41:55
104
原创 4261. 孤独的照片-贡献法
Farmer John 最近购入了 NN 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。然而,他不想拍摄这样的照片,其中只有一头牛的品种是更赛牛,或者只有一头牛的品种是荷斯坦牛——他认为这头奇特的牛会感到孤立和不自然。在为每个连续不少于三头奶牛的序列拍摄了一张照片后,他把所有「孤独的」照片,即其中只有一头更赛牛或荷斯坦奶牛的照片,都扔掉了。
2025-03-03 18:35:47
137
原创 1262. 鱼塘钓鱼 -多路归并思想
即:在第 1 个鱼塘中钓鱼第 1 分钟内可钓到 10 条鱼,第 2 分钟内只能钓到 8 条鱼,……,第 5分钟以后再也钓不到鱼了。从第 1 个鱼塘到第 2 个鱼塘需要 3 分钟,从第 2 个鱼塘到第 3 个鱼塘需要 5 分钟,……给出一个截止时间 T,设计一个钓鱼方案,从第 1 个鱼塘出发,希望能钓到最多的鱼。假设能钓到鱼的数量仅和已钓鱼的次数有关,且每次钓鱼的时间都是整数分钟。
2025-03-02 11:08:43
214
原创 505. 火柴排队-逆序对模板题
涵涵有两盒火柴,每盒装有 nn 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:其中 aiai 表示第一列火柴中第 ii 个火柴的高度,bibi 表示第二列火柴中第 ii 个火柴的高度。每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,99799,999,997 取模的结果。
2025-03-01 10:52:43
342
原创 1238. 日志统计-时间窗口-双指针-蓝桥杯真题
小明维护着一个程序员论坛。ts id表示在 tsts 时刻编号 idid 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 TT 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 KK 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。
2025-02-27 14:35:56
171
原创 3745. 牛的学术圈 I
由于对计算机科学的热爱,以及有朝一日成为 「Bessie 博士」的诱惑,奶牛 Bessie 开始攻读计算机科学博士学位。经过一段时间的学术研究,她已经发表了 NN 篇论文,并且她的第 ii 篇论文得到了来自其他研究文献的 cici 次引用。Bessie 听说学术成就可以用 hh 指数来衡量。hh 指数等于使得研究员有至少 hh 篇引用次数不少于 hh 的论文的最大整数 hh。
2025-02-27 10:54:07
245
原创 蓝桥杯真题-4655. 重新排序-差分相乘
给定一个数组 A 和一些查询 Li,Ri,求数组中第 Li 至第 Ri 个元素之和。小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?
2025-02-26 21:33:21
195
KV存储引擎核心技术解析:基于数组、哈希、红黑树的高效数据管理
2025-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人