这样的数据结构称作树状数组,它支持O(logN)的单点修改和区间查询,效率高并且代码简洁,缺点在于适用范围不如线段树广。不难看出(雾),tree[i]表示a[i]及之前的 lowbit(i)个 数,定义lowbit(i)等于取i的二进制中最后一个'1'表示的大小观察发现(。),修改a[i]只需更新包 ...
分类:
编程语言 时间:
2020-02-16 01:10:00
阅读次数:
72
2019杭电多校第六场的一道签到题 这次我们显然要求的二维矩阵的最大值,分析题目我们可以得到几个细节。 1.首先数据很大,肯定要离散化。 2.离散化后,我们想象有很多点在一个平面内,要统计矩阵最大值 3.我们之前接触过如何求一条线上的最大子段和,只要用线段树维护四个值就能够解决 4.根据已知,我们发 ...
分类:
其他好文 时间:
2020-02-15 11:33:29
阅读次数:
89
树链剖分,线段树维护~ #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> using namespace std; const int MAXN = 1001 ...
分类:
其他好文 时间:
2020-02-14 23:05:58
阅读次数:
151
2 数值计算理论基础 2.1 距离与极限 2.1.1 距离 距离是最为常见的概念之一,几何中线段的长度是其两个端点的距离,一个实数和近似值的绝对误差也是距离。如果抛开几何直观,可以把距离这个概念推广到任意一个集合中的两个元素。若把集合中的一个元素看成空间中的一个点,则距离表示的就是这两个点之间远近程 ...
分类:
其他好文 时间:
2020-02-14 22:40:41
阅读次数:
88
理解一个数据结构,我们应该首先明白该数据结构的作用与应用场景,尔后理清其逻辑结构,基于逻辑结构考虑如何在计算机上进行物理存储,最后对以上进行代码实现。 我们按上述思考顺序来实现一次线段树。 作用及应用场景 我们考虑一个场景,我们有一个长度为 n 的数组,我们需要经常进行两种操作: 1. 计算某个区间 ...
分类:
编程语言 时间:
2020-02-14 22:10:23
阅读次数:
71
有两种操作,一是给区间内所有的数开根号,二是区间求和。 线段树单点更新,区间求和的模板~ #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int maxn=1e6+14; struct n ...
分类:
其他好文 时间:
2020-02-14 20:23:34
阅读次数:
63
ggplot2绘图系统——几何对象之线图 曲线:点连线、路径曲线、时间序列曲线、模型拟合曲线...... 直线:水平直线、垂直直线、斜线。 1.曲线 对象及其参数。 示例时间序列曲线。 点连线 需要依靠图层叠加。先画点和先画线有细微的区别,即重叠的部分后一个会覆盖前一个。 线条颜色 2.平滑曲线 参 ...
分类:
编程语言 时间:
2020-02-14 16:14:54
阅读次数:
94
document文档格式、线段、图片、页眉页脚等都不变 # -*- coding: utf-8 -*-# @Time : 2019/5/6 11:46# @Author :"""# 利用python-docx替换文章中的内容 pip install python-docx# 格式、线段、图片、页眉页 ...
分类:
编程语言 时间:
2020-02-14 00:31:13
阅读次数:
210
题意: 对于一个给定长度为N的字符串,求它的第K小子串是什么。N<=5000000,K<=1000000000。 题解: 对于本题,首先我们要做的事情是先建立后缀自动机。 如果T=0,那么每一个位置的出现次数直接设为1,T=1否则就是正常的right集合大小。 那么我们可以再记一个sum[i],表示 ...
分类:
其他好文 时间:
2020-02-13 13:13:09
阅读次数:
67
这道题用树状数组做比较好,虽然树状数组能做的线段树也可以做到,但是树状数组更简洁方便,易操作 原理便是第x个数的二进制数最后一个“1”,决定tree的结点的长度 比如: sum[3]=tree[3]+tree[2]; sum[4]=tree[4]; sum[5]=tree[5]+tree[4]; 分 ...
分类:
其他好文 时间:
2020-02-12 13:15:00
阅读次数:
42