文章分类 -  c++常用操作

为了避免自己忘记而写
摘要:树状数组 树状数组,能使对一个区间的数修改以及查询的速度提升许多。这里从从单点修改,单点查询,区间修改,区间查询来出发。 对于4个节点的树状数组来说,其结构大致如下: 不过需要注意的是每个节点只有最高节点对应的是树状数组的节点,但这样做的正确性其实是二进制计算得到的。 也就是 $ c_1 = a_1 阅读全文
posted @ 2024-05-07 15:15 WE-R 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P1111 修复公路 这是用连通块的思想来实现并查集,初始n个点,他们对应都在自己的联通块里,记为f[x]=x。 对于已经在联通块里的点,我们返回它所在的连通块即可,即int find(int x) {return f[x]==x?x:find(f[x]);}。 我们用n记作连通块的 阅读全文
posted @ 2024-04-23 16:54 WE-R 阅读(2) 评论(0) 推荐(0) 编辑
摘要:堆 堆分为插入,查询,删除3个操作,虽然我们通常用优先队列来实现堆的功能,但是手写堆还是需要会的。 P3378 【模板】堆 最基本的二叉堆,也就是用一个二叉树来模拟的,其中通过一定的单调性来排列,其中堆顶为单调性最高的点位。 类似于现端倪树一般的,我们父节点的左儿子记为now<<1,右儿子为(now 阅读全文
posted @ 2024-04-23 16:17 WE-R 阅读(7) 评论(0) 推荐(0) 编辑
摘要:先占个坑位 multiset的使用 CF D. Inaccurate Subsequence Search 这道题用到了插入、查找和删除三个功能。 阅读全文
posted @ 2024-04-17 22:50 WE-R 阅读(0) 评论(0) 推荐(0) 编辑
摘要:”如果一个选手比你小还比你强,那你就该退役了“————单调队列原理 单调队列多用于滑动窗口问题,即区间最优值的问题,与优先队列和线段树O(nlogn)的时间复杂度相比,有着高贵的O(n)时间复杂度。 区间最大(小)值 区间最值是单调队列的一个经典应用。例如给出一段序列 1 2 3 4 阅读全文
posted @ 2024-04-16 18:03 WE-R 阅读(2) 评论(0) 推荐(0) 编辑
摘要:1.优先队列的定义 优先队列是一个以集合为基础的抽象数据类型。 优先队列中的每一个元素都有一个优先级。 定义在优先队列上的基本运算如下。 Min(H): 返回优先队列H中具有最下优先级的元素。 Insert(x,H): 将元素x插入优先队列H。 DeleteMin(H): 删 阅读全文
posted @ 2023-12-14 11:41 WE-R 阅读(19) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示