![](https://img-blog.csdnimg.cn/db5f8db7eb3649a69459f33513f0bf17.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 93
C++竞赛之火种,点亮算法竞赛之光!
心灵震荡
这个作者很懒,什么都没留下…
展开
-
树链剖分详解
顾名思义,树链剖分就是将整棵树剖分为若干条链,使它组合成一个线性结构,然后用其他的数据结构维护树上的信息。**重链剖分** 可以将树上的任意一条路径划分成不超过 $O(\log n)$ 条连续的链,保证划分出的每条链上的节点 **DFS 序** 连续,因此可以方便地使用 **线段树** 之类的数据结构来维护树上的信息。原创 2023-08-19 00:14:02 · 135 阅读 · 0 评论 -
洛谷P1059 [NOIP2006 普及组] 明明的随机数
题目来源:https://www.luogu.com.cn/problem/P1059洛谷P1059 [NOIP2006 普及组] 明明的随机数 题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了个到 之间的随机整数(≤ 100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。原创 2022-08-23 15:27:01 · 480 阅读 · 0 评论 -
C++算法:二分查找(Binary Search)
在枚举查找里,要一个不漏的查找完所有数据,最坏情况下时间复杂度为O(n)。这就导致程序的时间消耗非常巨大,若a数组的最大下标为1000000,则程序也需要查找1000000次,很容易导致TLE(Time Limit Exceeded)。那么有没有一种更快捷的方法呢? 当然有,这就是二分查找法(Binary Search),想象一下,对于一个无序数列,我们当然只能枚举,但如果是一个有序数列,那么在查找的过程中就会有迹可循。原创 2022-08-23 11:05:56 · 5685 阅读 · 2 评论