自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Triple Removal & Maximum Array 2

一道考的是前缀和加二分的区间查询技巧,另一道则是围绕MEX和区间最小值展开的构造题,琢磨透这两道题的过程里,我挖到了不少实用的解题思路,索性整理出来和大家分享。再者,区间里1的总数也得是3的倍数,毕竟每次移除的三个元素要么全0要么全1,0和1的总数都得能被3整除才行。先看MEX约束,MEX是最小的未出现非负整数,所以如果一个区间的MEX是 k ,那这个区间里必须把 0 到 k-1 的数都包含进去,同时绝对不能出现 k。竞赛里很多题目都是这样,看似复杂的规则背后,藏着的都是最基础的算法技巧。

2025-12-18 08:44:17 837

原创 再次拾起,记录我的学习进程

hello,间隔这么久,我再次打开博客,记录下我的学习进程,以后坚持周更一到两篇,欢迎大家来和我一起学习一起见证彼此的成长经历。

2025-12-08 10:44:06 104

原创 解决Monocarp与龙的战斗问题:最小毒药强度k的确定,二分查找提升,有趣的题目

3. **检查函数**:编写一个检查函数,计算在给定k值下,Monocarp能够造成的总伤害。1. **check函数**:这个函数计算在给定k值下,Monocarp能够造成的总伤害。2. **二分搜索**:在每次迭代中,计算中间值mid,并检查是否可以使用mid作为k值来造成至少h点伤害。2. **solve函数**:这个函数处理每个测试用例,初始化攻击时间数组,并使用二分搜索找到最小的k值。4. **更新搜索范围**:根据检查函数的结果,更新搜索范围,直到找到最小的k值。

2025-03-07 13:24:36 769

原创 积木搭建,优先队列,小根堆

希望这篇博客对你有所帮助!- **时间复杂度**:对于每个测试用例,我们需要处理n个木块,每个木块的处理时间为O(log m),因此总时间复杂度为O(t * n * log m)。3. **输出结果**:所有木块都能成功分配到塔上,则输出YES和每个木块所分配的塔的索引,都能输出yes,数学思维。- **空间复杂度**:我们使用了一个优先队列和一个数组来存储结果,因此空间复杂度为O(m + n)。2. **处理每个木块**:对于每个木块,我们将其添加到当前高度最小的塔上,并更新该塔的高度。

2025-03-06 17:40:43 600

原创 给字符串染色,如何使最短回文串长度最大化

通过统计字符频率和计算字符对数,我们可以有效地解决这个字符串上色问题,并确保每种颜色对应的子串都是回文串。3. **确定最短回文串长度**:根据字符对数和颜色数量,我们计算每种颜色可以分配到的字符对数,并确定最短回文串的最大长度。2. **计算字符对数**:对于每个字符,我们计算可以形成多少对字符(即每个字符的频率除以2)。- 字符频率为:`b:1, x:1, 7:2, a:1, z:1, 8:1`。1. **字符频率统计**:首先,我们统计字符串中每个字符的出现频率。- 可以形成1对字符(`77`)。

2025-03-05 18:38:11 718

原创 开灯关灯数学角度思考,非常有趣的题目

这个问题看起来有点复杂,但如果我们仔细分析,会发现其中的规律。每次操作都是对灯的开关状态进行切换,而切换的次数取决于灯的编号的因数个数。例如,编号为6的灯会被1、2、3、6切换四次,最终状态与初始状态相同(关闭)。我们发现,只有那些编号为完全平方数的灯会被切换奇数次。2. **循环**:从1开始,遍历所有小于等于 \( N \) 的完全平方数。3. **输出**:输出这些完全平方数,即最终开着的灯的编号。1. **输入**:读取整数 \( N \)。- 9的因数:1, 3, 9(3次)

2025-03-04 20:48:26 315 2

原创 二分查找,提升题,新学者可以试着写写看,挺有意思的

**时间复杂度**:二分查找的时间复杂度为 \( O(\log(\text{max\_height})) \),每次查找需要遍历所有树木,时间复杂度为 \( O(N) \)。我们需要找到一个高度 \( H \),使得锯掉所有高于 \( H \) 的树后,得到的木材总长度至少为 \( M \) 米。- 如果 \( sum \) 大于或等于 \( M \),则更新答案并将左边界 \( l \) 移动到 \( mid + 1 \)。- 否则,将右边界 \( r \) 移动到 \( mid - 1 \)。

2025-03-04 10:02:13 782 1

原创 二分查找,提升题,新学者可以练练

3. **调整查找范围**:如果需要的路标数量小于等于 \( K \),则说明当前的 \( mid \) 是一个可行的“空旷指数”,我们尝试寻找更小的值。2. **计算需要增设的路标数量**:遍历所有相邻的路标,计算它们之间的距离。- 如果 `count` 小于等于 `K`,说明当前的 `mid` 是一个可行的“空旷指数”,尝试寻找更小的值。- 如果距离大于 `mid`,则计算需要增设的路标数量,并累加到 `count` 中。- `mid` 是当前的中间值,表示假设的“空旷指数”。

2025-03-04 08:55:43 799

原创 二分查找,新学者可刷刷看

二分查找的时间复杂度为 \( O(\log n) \),适合处理大规模数据。- 循环结束后,检查 \( a[l] \) 是否等于 \( x \),如果相等则返回 \( l \),否则返回 -1。- 如果 \( a[mid] \geq x \),则目标在左半部分,更新 \( r = mid \)。- 第一行包含两个整数 \( n \) 和 \( m \),分别表示数字个数和询问次数。- 初始化查找范围为 \( l = 1 \) 和 \( r = n \)。- 在每次循环中,计算中间位置 \( mid \)。

2025-03-03 08:55:59 292

空空如也

空空如也

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

TA关注的人

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