ICode9

精准搜索请尝试: 精确搜索
  • 树状数组2022-07-09 10:31:17

    原文 解决的问题 基本问题:单点修改,区间查询 利用差分:区间修改,区间查询 总的来说就是:频繁修改+区间查询 与线段树区别 树状数组可以解决的问题都可以用线段树解决。 两者的区别 树状数组的优点: 相比线段树系数系数要少很多 容易写,代码量小 线段树的优点: 可以解决复杂问题。

  • 重探线段树2022-07-05 00:00:39

    方差 题意 \(1e5\) 范围处理区间加,区间平均数,区间方差。 做时思路 明显区间方差是这道题目的关键,其他两个与模板并无不同。 这里我们思考一下如何处理区间方差。 方差的计算公式向下推就完事儿了。 令其中有 \(k=r-l+1\) 个元素。 \(s^2=\frac{\sum\limits ^r_{i=l} (\bar{x}-x_i)

  • 谈谈线段树中懒惰标记的设计2022-07-02 15:34:00

    一·懒惰标记的重要性   线段树中,修改一段区间之内的值,是将其分成更小的区间与树中区间匹配,若无法匹配,则再分成更小的区间进行匹配。基于此,我们并不需要更改整棵树,只需要更改其中的一部分,更新掉的区间的子区间也不必更新,只要用懒标记标记即可,防止之后的查询错误。这样,时间复杂度

  • 探求线段或棱上是否存在一个点2022-07-01 09:35:52

    前言 当在线段上选定了一个动点后,利用线段的比例或利用向量共线,就可以将形的问题转化为数的问题了。比如探究线段 \(PB\) 上是否存在一个点 \(S\),那么我们就假设存在满足条件的点 \(S\),可设 \(\overrightarrow{PS}=\lambda\overrightarrow{PB}(0\leqslant\lambda\leqslant 1)\),则

  • 线段树2022-06-30 19:31:28

       大体长这个样子 特点: 任意两个节点,要么是包含关系,要么没有公共部分,不存在重叠或相交。 给定一个叶子节点p,从该节点到根节点的所有节点所代表的区间都包含p。 存储方式:静态数组存储,左孩子*2,右孩子*2+1本人不会指针,写不出指针写法 操作: update: 利用子节点信息更新父节点信息

  • [CF527D]Clique Problem 题解2022-06-19 22:33:42

    传送门QAQ Preface 终究是思维能力不够啊QAQ 学到了学到了。 Analysis 首先观察到连边具有双向性,考虑直接拆开绝对值,即 \(x_i - x_j\ge w_i+w_j\) 很显然,珂以把相同下标的放到一块维护,即 \(x_i-w_i\ge x_j+w_j\) 这玩意没有任何性质,我看了半天也没找出任何用巧妙的暴力或线段树求

  • SD2022-06-19 16:36:21

    D1T1 树形 \(\text{DP}\)。 令 \(f_{u,s,k},(k\in\{0,1\})\) 表示仅考虑以点 \(u\) 为根的子树,固定 \(u\) 的权值为 \(s\),\(u\) 子树中是否有点的权比 \(u\) 的权大的方案数。 \[\begin{aligned}\\ f_{u,s,0}&=\sum_{v\in\operatorname{son}(u)}\sum_{w\in\operatorname{son}(u),w

  • 整体二分2022-06-18 18:35:35

    \(\quad\)这个就是对于所有询问一起二分答案。一般的格式是 solve(值域,操作范围) ,表示在这个操作范围内,所有的操作都是涉及这个值域的(答案在这个值域,加减在这个值域),并且按照顺序排列。那么求解的大概的过程就是,对于当前值域二分一个答案,扫一遍,对于涉及的数值比这个二分的值小的操

  • 【复健试手】老年选手的挣扎2022-06-14 12:04:39

    高考结束之后进行简单估分,觉得复读和上带学五五开,所以先把写代码的能力捡起来再说。如果真的复读了又要停更一年了 这里都是简单题,建议初学者阅读学习。 CF1691E Number of Groups 题面 大意:有一堆红色蓝色的线段,定义不同颜色的线段连通为当且仅当他们至少有一个公共点。问连

  • 树套树2022-06-12 14:32:46

    树状数组套动态开点权值线段树 每个位置开一个线段树,可以得到问题的答案,但是时空复杂度不对。——这种情况用BIT套动态开点权值线段树解决。 Dynamic Rankings 路灯 动态逆序对

  • [JOISC 2017 Day 1] 港口设施2022-06-12 09:35:47

    一、题目 点此看题 二、解法 首先考虑只有一个港口的情况,发现合法的充要条件是所有 \([a,b]\) 不交。 由于两个港口是独立的,所以问题转化成:求出有多少种二染色方案,使得同色的线段不交。我们把满足 \(a<c<b<d\) 的线段 \([a,b]\) 和 \([c,d]\) 之间连一条边,然后问题就变成了求连通

  • 线段树2022-06-07 16:03:33

    线段树的定义 线段树是一颗二叉搜索树,它的每一个节点都有两个子节点,每一个节点存储着一个区间的有关信息(可以是区间和,也可以是区间的最大值等) 下图所示为 arr 数组区间和在线段树上的表示方法。 线段树的实现 使用数组存储二叉树的形式对线段树进行存储,在图中我们使用红色圆圈标

  • 算法归纳4-前缀和/差分/树状数组/线段树2022-06-06 21:36:37

    1,对比 https://blog.csdn.net/honghuidan/article/details/77527808 两者相同点:单点/区间修改,区间查询 区间查询:前缀和 区间修改,单点查询:差分 单点修改,区间查询:树状数组,线段树 区间修改,区间查询:线段树+懒标记 不同点: 树状数组只能维护前缀操作和(前缀和,前缀积,前缀最大最小),而

  • 线段树——区间求和2022-06-06 13:31:08

    #include <bits/stdc++.h> using namespace std; //以下是线段树的模板,让区间查询和修改的时间复杂度到O(lgn); class XianDuanTree{ private: vector<int> arr; vector<int> tree; public: XianDuanTree(vector<int> &arr){ this->arr = arr;

  • 【考试总结】2022-06-042022-06-04 20:01:49

    书 将 \(1\sim n\) 中的偶数向半数自身连边,那么行程若干条链,每个 \(1\) 都需要使用上面行程的链或者链的一部分来进行填充 注意到链的长度和数量都非常有限,考虑使用高维 \(\rm DP\) 来解决这个问题,设 \(f_{i,c1,c2,c3,c4,c5,c6,\lim_1,\lim_2}\) 表示长度为 \(i\) 的链有 \(c_i\)

  • 两道 qoj2022-06-04 19:32:10

    第一题 题意 数轴上有 \(n\) 条线段,你要在数轴上放点,使得每条线段至少包含一个点,最小化一条线段上最多放的点。 题解 神仙题。 首先有一个贪心想法,每次找到目前所有线段中最小的右端点,在这里放一个点,然后把包含了这个点的线段删掉,重复直到没有线段,设最后得到的答案为 \(K\)。 可以

  • 浅谈线段树分治2022-06-02 22:03:31

    思想 离线,把询问拆成若干个区间,放到线段树上,在线段树上递归处理,进一个区间就执行操作,出一个区间就撤销执行了的操作,需要支持可回退。 题 P5787 二分图 /【模板】线段树分治 以时间为轴建线段树,把所有的边都放到线段树对应的区间里,走到这个区间时就连边,可以使用扩展域并查集判二分

  • 【Coel.解题报告】【权值线段树初探】三元上升子序列2022-05-28 22:00:52

    题前闲话 第一次写绿题解题报告,多少有点膈应quq 反正这个也是主席树和树套树的前置操作,就当是水博客了! 反正整个五月也没写几个博客 题目简介 洛谷传送门 最近洛谷出了个一键复制 markdown 的功能,这下方便多了! 题目描述 Erwin 最近对一种叫 thair 的东西巨感兴趣。。。 在含有 \(n

  • 130 线段树2022-05-28 09:33:40

    视频链接: // P3374 【模板】树状数组 1 #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define lc p<<1 #define rc p<<1|1 #define N 500005 int n,w[N]; struct node{ int l,r,sum; }tr[N*4]; void pushup(int

  • UR #42022-05-27 22:35:27

    代码见 UOJ/UR#4 · yinjinrun/code-public-2 - 码云 - 开源中国 (gitee.com)。 UOJ51 【UR #4】元旦三侠的游戏 给出三个整数 \(a, b, n\),保证 \(a \geq 2\),\(b \geq 1\),\(a^b \leq n\)。两人轮流进行操作,每人每次可以选择将 \(a\) 的值加上 \(1\),或者将 \(b\) 的值加上 \(1\)。

  • 2022.5 杂题2022-05-26 20:31:55

    P5608 [Ynoi2013] 文化课 用线段树维护。对于区间修改符号的操作,记录区间的数字之和以及数字积即可。对于区间修改数字的操作,发现修改后的值无法快速求出来,考虑在每个线段树的节点 \(p\) 上,记录二元组的集合 \(S_p=\{(c_i,d_i)\mid 1\le i\le len_p\}\),表示长为 \(c_i\) 的极长乘

  • 水题记录2022-05-25 16:00:12

    2022.5.24 P4381 [IOI2008] Island:基环树森林,在每个基环树中求直径,环上单调队列。 UVA10369 Arctic Network:最小生成树。 P6066 [USACO05JAN]Watchcow S:建一棵生成树 dfs 一遍,对于返祖边单独走。 P6175 无向图的最小环问题:floyd。 UVA663 Sorting Slides:二分图最大匹配,删掉每条匹

  • 可持久化线段树2022-05-21 13:00:07

    可持久化线段树 可持久化线段树 就是 可以持久化的线段树。(?????? 大部分可持久化线段树其实都是「可持久化权值线段树」,也就是「主席树」。 这个东西我好像只理解了一点点皮毛啊,暂时先发出来=_= 随便编的例题 你需要维护一个序列 \(a\),初始为空。有 \(n\) 次操作: 1 x:向序列 \(a\) 末尾

  • SD/XOI 2022 多边形2022-05-21 01:31:17

    首先我们考虑不重不漏地统计这个事情,这个题事实上是凸多边形划分的一个拓展,传统的凸多边形剖分方案数就是卡特兰数。 那么这里的区别就是: 在一条边上的点不能相互连线段 在边中间上的点可以没线段 不妨考虑我们手动枚举了一些中间点完全不连边,剩下 \(m\) 个点要连边,如果我们直接

  • 可持久化2022-05-18 20:32:35

    乱写一气。 可持久化线段树 P3402 可持久化并查集 按秩合并,将并查集的 \(\mathrm{fa}\) 和 \(\mathrm{size}\) 数组可持久化。时间 \(\mathcal{O}(n+m\log^2 n)\)。 P3293 [SCOI2016] 美味 从高位到低位确定答案,对每一位都在可持久化线段树上二分一下。时间 \(\mathcal{O}(n\log n

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有