C++
bloxd yzh
该用户不懒,但是还是什么都没留下。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RMQ算法
设f[i, j]表示从a[i]到a[i + 2^j - 1]这个范围内的最大值,也就是以a[i]为起点连续2^j个数的最大值。两个区间的元素个数都为2x,所以[li, ri]的最大值为max(f[li][x], f[ri – 2^x + 1][x]),可以在O(1)内计算出来。f[i][j] = max(f[i][j - 1], f[i + 2^(j-1)][j - 1]),边界条件为f[i][0] = a[i],这样就可以在O(nlogn)的时间复杂度内预处理f数组。原创 2025-12-20 09:49:01 · 385 阅读 · 0 评论 -
二分答案
那么猜最大的最小值就要往小的猜,猜最小的最大值就要往大的猜,并随时验证猜的答案是否合理,如果合理就继续。二分的效率是非常高的,因为每猜一次就可以排除掉一半的数,哪怕是1e9使用二分之后循环次数就减少到1e4~1e5之间,而题目一般不会出到1e18,所以做题用二分99%不会爆炸。思路:我们可以定义一个左端点(L)和右端点(R),因为不知道要猜多少次,所以用while循环,在循环中不停地判断,满足条件(即中间数合理)则继续往上猜,直到猜中为止。就像猜数字一样,要尽快猜出一个数,就要每次猜它的一半。原创 2025-12-20 09:48:06 · 374 阅读 · 0 评论 -
C++字符串处理:高效操作与常见陷阱
在 C++ 中,字符串的处理主要有两种方式:。:修改字符串时,原有迭代器可能失效。:频繁拼接字符串时,可用。:避免使用非法索引(如。(非' '和 /n )原创 2025-05-10 11:07:55 · 172 阅读 · 0 评论 -
病毒(在DEVC++运行)
【代码】病毒(在DEVC++运行)原创 2025-05-25 17:25:37 · 152 阅读 · 0 评论 -
C++跑酷游戏
合并了两个C++跑酷游戏。原创 2025-07-18 07:57:05 · 249 阅读 · 0 评论 -
C++每周一篇
【代码】C++每周一篇。原创 2025-04-12 21:04:32 · 160 阅读 · 0 评论 -
差分知识
原创 2025-10-18 08:50:32 · 137 阅读 · 0 评论 -
单调队列知识点
在进行 队尾插入 的时候,我们往往需要明白一个重要的点,就是需要保证它 单调递减 的性质,所以如果 队尾元素 <=插入元素 ,则当前的 队尾元素 是需要执行删除操作的(也就是上文提到的 队尾删除),直到满足 队尾元素 > 插入元素,才能真正执行 插入 操作。为了让单调队列的数据足够干净,在单调队列中,一般存储 原序列的下标 即可,而不需要存储原序列的值,根据保序性,存储的下标一定是单调递增的;单调队列中的元素是 原序列的下标,对应到原序列时,根据求解问题的不同,当需要求最大值时,它是单调递减的;原创 2025-10-07 10:27:41 · 1025 阅读 · 0 评论 -
单调栈知识点
在处理序列时,当遇到一个元素时,如果该元素比栈顶元素大,就可以将栈顶元素出栈,直到栈为空或者栈顶元素大于等于当前元素。栈中元素从栈底到栈顶递减。在处理序列时,当遇到一个元素时,如果该元素比栈顶元素小,就可以将栈顶元素出栈,直到栈为空或者栈顶元素小于等于当前元素。这样,栈中的元素就是在当前元素之前且比当前元素大的元素。1)如果当前元素比栈顶元素大(或小,取决于是递增栈还是递减栈),则持续将栈顶元素出栈,直到栈为空或者栈顶元素满足某种条件(例如比当前元素大或小)。进栈元素分别为3,4,2,6,4,5,2,3。原创 2025-10-07 10:24:08 · 328 阅读 · 0 评论
分享