摘要:题目 https://loj.ac/p/6282 题解 数据范围 ,因此进行分块最多分 块。且数据是随机生成的,因此插入数据后,每个块的长度期望值为 \(\frac{318+(318 + 100000/318)}
阅读全文
摘要:题目 https://codeforces.com/problemset/problem/2026/D 题意 第一行输入一个正整数 ,第二行输入 个整数 \(a_1, a_2, ..., a_i, ..., a_n(-10 \leq a_i
阅读全文
摘要:前言 对一个 int 类型的非负整数进行开方下取整,最多只会开方四次大小就不会再发生变化。一个大于 的正整数开方下取整最后的结果比如是 ,而 开方的结果仍然会是 ; 开方的结果仍是 。 验证int类型整数最多可以开方的次数的demo #
阅读全文
摘要:题目 https://loj.ac/p/6280 题解 将 个元素的数组 按块长 进行分块处理。为每个块设置两个懒添加标记 ,分别代表这个区间每个元素共同添加的数值大小,区间和(不包括懒添加的值)。 对于区间加操作
阅读全文
摘要:前言 异或运算:是一种在二进制数系统中使用的逻辑运算。它的基本规则是对两个二进制位进行比较,如果这两个位不同,则结果为 ;如果相同,则结果为 。 异或运算的规则 XOR = XOR = XOR \
阅读全文
摘要:题目 https://loj.ac/p/6279 题解 将 个元素的数组 按块长 进行分块处理。为每个块设置一个懒添加标记 ,代表这个区间每个元素共同添加的数值大小。 对于任意一个无序数组,想要维护出该数组内某个值的前驱(即小于某
阅读全文
摘要:题目 https://loj.ac/p/6278 题解 将 个元素的数组 按块长 进行分块处理。为每个块设置一个懒添加标记 ,代表这个区间每个元素共同添加的数值大小。 对于任意一个无序数组,想要维护出该数组内小于某个值的元素个数,
阅读全文
摘要:前言 分块是一种优雅的暴力,将数组按块长 进行分块,可实现区间加法、区间求和和区间逆序对计数等场景,进行 次操作的时间复杂度:。 对于整个块都进行操作,可以用打上标记的方式来取代操作这个块的全部元素,由于最多只需要处理 \(\sq
阅读全文
摘要:题解 首先思考暴力枚举长度为 ,最差情况下为字符串 和字符串 全为长度为 的全英文字符串,时间复杂度: ,显然会超时。 容易证明的是:若存在一个长度为 \(x\
阅读全文