- 博客(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
原创 牛客——签到题
我拿到题就去看了示例,可以发现,并非是让难度最小,或者难度系数出现次数最多的成为签到题的难度。那我就有点懵了。。。。。。但仔细观察题目本身的特定条件和目标,即在满足选择 m 道题的前提下,尽可能多地选择难度值最低的题目,可以想到贪心贪心算法在这种情况下适用,因为它能够在每一步选择中做出局部最优的选择,从而达到全局的最优解。
2025-05-14 21:46:26
287
原创 小白月赛——命运之弹
对于每个幸运值,代码计算出在该幸运值下,小 K 需要使用多少次「转瞬即逝」魔法来避免被击中。这是通过比较当前幸运值与每个子弹的危险值来实现的。如果当前幸运值小于子弹的危险值,则需要使用一次「转瞬即逝」。贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法策略。:在所有可能的幸运值中,选择需要使用「转瞬即逝」次数最少的那个幸运值作为最终结果。),遍历每个可能的幸运值,每一种可能的幸运值是由扭转乾坤得到的。:代码中通过一个循环从给定的幸运值。
2025-05-14 20:29:38
243
原创 天梯——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
原创 区间分组详解
按照左端点排序原因(个人理解):让每个组的区间都排列的更加紧密,并且如果按照右端点排序,而不知道左端点的位置,可能造成误差priority_queue<int>表示一个大根堆,队列的顶部存储的是最大的元素。priority_queue<int, std::vector<int>, std::greater<int>>表示一个小根堆,队列的顶部存储的是最小的元素。
2025-04-22 17:33:06
170
原创 模拟堆详解
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
原创 “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++中,字符串字面量是用双引号括起来的字符序列,如"Hello, World!• 字符串连接:可以使用+运算符或std::string::append方法来连接两个字符串。• 字符串长度:std::string::length方法或size()方法可以返回字符串的长度。• 字符串比较:可以使用==和!=运算符来比较两个字符串是否相等或不相等。,=运算符可以用于比较字符串的字典顺序。
2024-12-10 00:16:07
879
原创 DFS,BFS,二分应用情况
是一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点,尽可能深地搜索树的分支。DFS 常用于以下情况:• 树或图的遍历:用于访问树或图中的所有节点。• 路径搜索问题:寻找从一个节点到另一个节点的路径,例如在迷宫中寻找路径。• 连通性问题:确定图中的节点是否连通,或者找出图中的最大连通子图。• 拓扑排序:对于有向无环图(DAG),DFS 可以用来进行拓扑排序。• 求解迷宫问题:在迷宫中找到从起点到终点的路径。• 求解某些类型的搜索问题:例如八皇后问题、图着色问题等。
2024-12-05 13:13:56
1497
原创 位运算总结
是直接对整数在内存中的二进制位进行操作的一种运算方式。在计算机中,所有的数据最终都是以二进制形式存储的,位运算允许程序员直接对这些二进制位进行操作,这使得位运算在某些情况下可以非常高效。以下是一些基本的位运算:• 位与(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
原创 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关注的人