线段树区间加法+乘法 区间加法+区间乘法(2标记 Luogu 一开始只想到了开2个标记,但是看了题解才知道标记下传是有优先级的 按题目数据来如果是 先+后x: $val = (val + b) * k = valk+bk$ 先x后+ : $val = val * k + b$ 如何处理2个标记? 假设给数组[1,2,3]中1~3加上2,然后乘3,然后加4 式子: $ 2019-12-15 算法与数据结构 > 数据结构
c++流和c流 c++ 流 和 c 流 标准的c++流默认与其相对应的c流同步:( 在每次输入/输出后同步 ) 同步的c++流 无缓冲,每次c++流上的$I/O$操作都立即应用到对应 C 流的缓冲区。这使得能自由地混合 C++ 与 C $I/O$ 。 若关闭同步,则允许 C++ 标准流独立地缓冲其 I/O ,可认为这在某些情况下更快。```c 2019-12-14 编程语言 > C与C++
lambda表达式后的() 一直对lambda后面的()这种离奇的语法感到奇怪,今天看到如下代码: 1234567auto optimize_cpp_stdio = []() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); std::setvbuf(stdout, nul 2019-12-14 编程语言 > C与C++ #lambda
基于Thinkphp开发的博客 (第一次开发,mark一下 基于Thinkphp开发的博客 (第一次开发,mark一下tp_blog 开发日志 11.20 文件命名空间sb new 命名空间下的文件一定要\app 12.8 忘记密码时输入邮箱的唯一性没有确定,已修复 玄学Bug : system设置的时候 system验证器离奇失效( 不知道是不是版本问题) 注册账号 和 忘记密码给注册邮箱发送4位验证码 使用了phpmailer扩展 登录的验证码图片 2019-12-11 Web开发 > PHP与后端 #blog
树状数组 树状数组lowbit(x) lowbit既能求出该节点及其下面子节点的个数,也能帮助区间下标转换 $lowbit(x) = x & (-x)$ 例如lowbit(8): $8_{10} = 1000_{2}$ 负数符号位不同( $-8_{10} = 1000_2$ 计算机以补码计算 8的补码$1000$, -8的补码$-8 = 1000_2 2019-12-05 算法与数据结构 > 数据结构 #树状数组
ST表 ST表 $O(logn * n)$ 预处理 $2*10^6 \approx 2^{21}$ $log2^{21} = 21$ $O(1)$查询,不支持修改操作 例如用于静态区间最大最小值查询 预处理 询问区间$[L,R]$,最多使用2个预处理过的区间的并就能覆盖询问区间 $f(i,j)$表示区间$[i,i+2^j-1]$的最大值 ,,,, $2^j-1$即倍增的长度 ,,, $f(i 2019-12-04 算法与数据结构 > 数据结构 #RMQ
非旋转Treap 非旋转Treap 通过节点的优先级来维护树的平衡, 下面是普通非旋转Treap (弱平衡, 性质 Treap是笛卡尔树的一种,只是 节点优先级是随机的 $Tree+Heap$: 二叉搜索树+堆的性质 2个核心操作 分裂+合并 分裂 split 按照 节点权值分裂或者值的排名分裂 $split_val$ 将一颗treap分裂成2个treap,第一个treap所有节点的权值$\le key$ 2019-12-04 算法与数据结构 > 数据结构 #非旋转Treap
替罪羊树 替罪羊树$\alpha$权重平衡 认为一棵树$X$是平衡的当且仅当它每一棵子树满足下列条件: $size(x.left) \le \alpha * size(x)$ $size(x.right)\le \alpha * size(x)$ $\alpha \in [0.5,1]$ $\alpha = 1$就是普通的二叉搜索树 $\alpha = 0.5$ 左右子树的大小是该数的 2019-12-02 算法与数据结构 > 数据结构 #平衡树
Luogu P3165 Splay区间翻转 脑残记录: 这周末2天只做了一道平衡树题目(2天被一道题限住),发现自己的很多问题, 11. 学了算法及其性质 但是总是做不出来题目,很难利用学过的性质, 同样这种情况再次发生在今天 没有运用的能力,思维太差??? 反思: 自己对算法题目的思维能力 还是不行 ( ???一定要想办法改变??? ) 要对自己的学过的算法的流程 好好走一遍, Splay 练习 Luogu P316 2019-12-01 算法与数据结构 > 数据结构 #区间翻转
Luogu P2234+P2286 (Splay性质 Luogu P2234 记住性质才能更好利用: Splay的查询前驱和后继操作 $tree.ins(val)$插入后会$Splay$到根节点 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 2019-11-28 算法与数据结构 > 数据结构 #Splay性质