自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客周赛Round93

这道题我没有想到什么更简单的做法,因为本题只是一个二维矩阵,而且分析可得,本题满足条件的情况很特殊,于是我直接把两人所有可能在的位置中成立的条件枚举了出来,剩下的直接输出NO,分析如下:代码这个代码确实有点麻烦,因为两个人的位置情况太多了,但是我们可以固定一下他们所在的行,这样也能减少很多步骤,代码如下。

2025-05-27 21:18:34 728

原创 萌新联赛第(三)场

这道题用暴力去写想都不要想,一定超时,于是我们需要优化,下面是思路过程:如图,本题只需找到x的因数个数和(n-x)的因数个数,这两个相乘,得到的就是对于这个x来说组合的个数,且x的取值为1~n,由题n取不到。

2025-05-20 19:53:21 375

原创 牛客练习赛138

这道题看着很麻烦,仔细观察样例,虽然是分数形式,但并没有约分,分子就是真正的通过人数,题目就是让求通过人数最多的,并且样例因为是直接输出了通过人数最多的,因此我们直接求就ok。

2025-05-18 18:39:08 917

原创 牛客周赛 Round 92

本题只需任意输出一个字符串,只要满足题目要求即可。

2025-05-15 20:15:05 145

原创 牛客——签到题

我拿到题就去看了示例,可以发现,并非是让难度最小,或者难度系数出现次数最多的成为签到题的难度。那我就有点懵了。。。。。。但仔细观察题目本身的特定条件和目标,即在满足选择 m 道题的前提下,尽可能多地选择难度值最低的题目,可以想到贪心贪心算法在这种情况下适用,因为它能够在每一步选择中做出局部最优的选择,从而达到全局的最优解。

2025-05-14 21:46:26 287

原创 小白月赛——命运之弹

对于每个幸运值,代码计算出在该幸运值下,小 K 需要使用多少次「转瞬即逝」魔法来避免被击中。这是通过比较当前幸运值与每个子弹的危险值来实现的。如果当前幸运值小于子弹的危险值,则需要使用一次「转瞬即逝」。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。:在所有可能的幸运值中,选择需要使用「转瞬即逝」次数最少的那个幸运值作为最终结果。),遍历每个可能的幸运值,每一种可能的幸运值是由扭转乾坤得到的。:代码中通过一个循环从给定的幸运值。

2025-05-14 20:29:38 243

原创 Dp通用套路(闫式)

我们要相信科学,不要相信玄学。如果上述解释有不对的地方,欢迎大家指正。

2025-05-09 22:57:28 734

原创 天梯——链表去重

数组模拟链表。

2025-04-28 21:13:17 352

原创 天梯——算式拆分

这道题提供两种解法,一种是字符串,一种是利用栈。

2025-04-28 19:55:35 207

原创 天梯——现代战争

第一次做的时候,直接暴力,显然最后超时。

2025-04-27 21:12:59 364

原创 天梯——大幂数

本题重难点在于找到连续自然数的下限,注意要开long long防止溢出,还有每次循环ans归为0。

2025-04-27 18:38:44 97

原创 天梯——L1-110 这不是字符串题

本题虽然都在围绕这整数来讲,但是下面的操作涉及替换,查找,插入,翻转,这与字符串的功能很类似,于是我们可以用字符串来做。翻转reverse(s.begin()+l-1,s.begin()+r);因为添加一个数后,所添加的数索引为i+1,原来i+1位置上的数变成了i+2;将字符串的[l,r]翻转: reverse(s.begin()+l-1,s.begin()+r);此时将字符转化为整数,用整数之间相加减,得到t是一个整数,因此需要用t/2+'0'将其变为一个字符,再添加到字符串 s3中。

2025-04-24 21:32:19 458

原创 天梯-这是字符串题

注意,h数组一定要先初始化,h 数组如果没有被初始化,这意味着它可能包含任意值。当你对 h[s[i]] 进行自增操作时,可能会得到错误的结果。本题有两种解法,h 可以使用普通数组来实现,也可以使用 map。

2025-04-23 21:10:27 307

原创 位运算知识

位运算是一种非常高效的操作方式,尤其在需要处理大量数据或优化性能时非常有用。通过上述示例,你可以看到位运算在快速乘除、奇偶性检查、位掩码操作、变量交换、计算2的幂次方、检查2的幂次方以及统计1的个数等场景中的应用。

2025-04-23 19:44:12 627

原创 天梯-零头就抹了吧

数学知识:如果一个数的二进制表示中不只有最高位是1,那么它就不是2的幂次方数。因此最高位是1且其余位都是0的数字,正是2的幂次方数。位运算:通过位运算快速找到小于等于输入整数 n 的最大2的幂次方数。

2025-04-23 19:35:32 167

原创 推公式——耍杂技的牛

由图可知,只要存在一个逆序,把他们交换一下,最大风险值就会降低,答案更优,因此最优解是按照wi+si从小到大升序排列,顺次计算每头牛的危险系数,最大值即是答案。

2025-04-22 21:10:43 214

原创 排队打水代码

【代码】 排队打水代码。

2025-04-22 20:21:25 112

原创 Huffman树—— 合并果子

【代码】Huffman树—— 合并果子。

2025-04-22 20:11:34 115

原创 区间覆盖详解

【代码】区间覆盖详解。

2025-04-22 19:31:50 120

原创 区间分组详解

按照左端点排序原因(个人理解):让每个组的区间都排列的更加紧密,并且如果按照右端点排序,而不知道左端点的位置,可能造成误差priority_queue<int>表示一个大根堆,队列的顶部存储的是最大的元素。priority_queue<int, std::vector<int>, std::greater<int>>表示一个小根堆,队列的顶部存储的是最小的元素。

2025-04-22 17:33:06 170

原创 区间选点详解

【代码】区间选点详解。

2025-04-21 21:20:20 169

原创 模拟散列表

开放寻址法拉链法。

2025-04-21 20:50:01 313

原创 模拟堆详解

h[N]:用于存储堆中的元素。ph[N]:存储第 k 个插入的元素在堆中的位置(eg:ph[k] = i,表示将第 k 个插入的元素在 h[i] 中)。hp[N]:存储堆中第 i 个元素是第几个插入的(eg:hp[i] = k,表示 h[i] 是第 k 个插入的元素)。cnt:当前堆中元素的数量。m:记录插入操作的总次数。

2025-04-21 19:52:44 435

原创 递归函数详解

递归的层层展开过程是不断将原问题分解为规模更小的子问题,直到达到递归终止条件;而逐步回溯过程则是在子问题解决后,依次返回上一层,利用子问题的结果解决更大规模的问题,最终得到原问题的解。整个过程通过调用栈来管理函数的调用和返回顺序,确保程序的正确执行。

2025-04-17 21:33:07 636

原创 滑动窗口AC

【代码】滑动窗口AC。

2025-04-17 20:44:11 120

原创 堆排序

【代码】 堆排序。

2025-04-17 20:19:02 111

原创 “typedef“知识详解

这里,uint就成为了unsigned int的别名。int id;} Employee;这里,Employee就成为了上述结构体的别名。这里,pchar就成为了char*的别名。这里,arr10就成为了包含10个整数的数组的别名。

2024-12-21 16:30:15 359

原创 “宏“知识详解

在C语言和C++中, #define 是预处理指令,用于定义宏。宏是一种在编译之前进行处理的指令,它不是C或C++语言的一部分,而是由预处理器处理的。使用 #define 可以定义常量,这在C语言中是定义常量的主要方式(C++中推荐使用 const 或 constexpr )

2024-12-21 16:23:19 353

原创 类型转换规则

在C++中,当不同类型的数值进行加减乘除运算时,会遵循特定的转换规则以确保运算的精度和正确性。

2024-12-16 08:57:20 179

原创 递归知识详解

递归是一种在编程中常用的技术,它允许一个函数调用自身来解决问题。递归特别适用于那些可以被分解为类似但规模更小的子问题的问题。

2024-12-13 14:11:55 1696

原创 字符串知识

• 字符串字面量:在 C++中,字符串字面量是用双引号括起来的字符序列,如"Hello, World!• 字符串连接:可以使用+运算符或std::string::append方法来连接两个字符串。• 字符串长度:std::string::length方法或size()方法可以返回字符串的长度。• 字符串比较:可以使用==和!=运算符来比较两个字符串是否相等或不相等。,=运算符可以用于比较字符串的字典顺序。

2024-12-10 00:16:07 879

原创 AcWing 4405. 统计子矩阵(蓝桥杯13届(2022)B组)

思想:前缀和+双指针。

2024-12-05 21:20:13 113

原创 DFS,BFS,二分应用情况

是一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点,尽可能深地搜索树的分支。DFS 常用于以下情况:• 树或图的遍历:用于访问树或图中的所有节点。• 路径搜索问题:寻找从一个节点到另一个节点的路径,例如在迷宫中寻找路径。• 连通性问题:确定图中的节点是否连通,或者找出图中的最大连通子图。• 拓扑排序:对于有向无环图(DAG),DFS 可以用来进行拓扑排序。• 求解迷宫问题:在迷宫中找到从起点到终点的路径。• 求解某些类型的搜索问题:例如八皇后问题、图着色问题等。

2024-12-05 13:13:56 1497

原创 异或和公式

对于一个数组nums,其前缀异或和数组prefixXor定义为:其中,prefixXor[0]通常定义为0,作为基准。

2024-12-04 20:05:27 856

原创 位运算总结

是直接对整数在内存中的二进制位进行操作的一种运算方式。在计算机中,所有的数据最终都是以二进制形式存储的,位运算允许程序员直接对这些二进制位进行操作,这使得位运算在某些情况下可以非常高效。以下是一些基本的位运算:• 位与(AND):用符号`&`表示。对两个数的每一位进行比较,只有当两位都是1时,结果位才为1。• 位或(OR):用符号`|`表示。对两个数的每一位进行比较,只要两位中有一个是1,结果位就为1。• 位异或(XOR):用符号`^`表示。

2024-12-04 18:12:00 672

原创 子数组概念

是指一个数组中的连续一段元素组成的新数组。例如,对于数组[1, 2, 3, 4],其子数组包括[1]、[2]、[3]、[4]、[1, 2]、[2, 3]、[3, 4]、[1, 2, 3]、[2, 3, 4]和[1, 2, 3, 4]等。要计算一个数组的所有子数组,你可以按照以下步骤进行:• 确定数组长度:首先,你需要知道数组的长度n。• 遍历所有可能的子数组起始位置:对于数组中的每个元素,都可以作为子数组的起始位置。

2024-12-04 18:09:35 395

原创 进制转换详解

进制转换是将一个数从一种基数(进制)转换为另一种基数的过程。例如,将十进制数转换为二进制、八进制或十六进制。

2024-12-04 18:07:54 602

原创 AcWing 841. 字符串哈希

一种将任意长度的字符串转换为固定长度数值(通常是整数)的过程。全称字符串前缀哈希法,把字符串变成一个p进制数字(哈希值),实现不同的字符串映射到不同的数字。对形如 X1X2X3⋯Xn−1Xn的字符串,采用字符的ascii 码乘上 P 的次方来计算哈希值。

2024-12-03 21:04:26 397

原创 AcWing143. 最大异或对

是一种逻辑运算,用于比较两个位(bit),当且仅当两个比较的位不同(一个为0,另一个为1)时,结果为1(真)。如果两个比较的位相同(都是0或都是1),结果为0(假)。在数学符号中,异或通常用符号“⊕”表示。

2024-12-03 20:08:09 430

原创 AcWing 835.Trie字符串统计

又称为前缀树或字典树,是一种用于快速检索字符串数据集中的键的数据结构。它特别适合于实现关联数组,即键到值的映射,其中键是字符串。Trie 的核心思想是将字符串的公共前缀存储一次,以此来节省空间,并提高查找效率。

2024-12-03 16:43:01 371

空空如也

空空如也

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

TA关注的人

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