摘要: 记得调B (雾 const int B = 16384; void sort (vector <int>& vec) { int n = vec.size(); vector <int> buf(n, 0); int mx = *max_element(vec.begin(), vec.end()) 阅读全文
posted @ 2025-09-29 11:22 FHCovo 阅读(9) 评论(0) 推荐(0)
摘要: 考虑记录 \(f_{i,j}\) 表示从 \(l\) 到 \(r\) 块内答案。 如何做散块? 考虑维护 \(cnt\), 然后判断是否可以超过答案即可。 阅读全文
posted @ 2025-03-05 09:50 FHCovo 阅读(19) 评论(0) 推荐(0)
摘要: 在做 4118 弱化版的时候发现了这样的小清新线段树,学习了一个下午后终于看懂了,发誓要写一篇小白也看得懂的学习笔记。 考虑这样的一个问题: 你需要维护 \(n\) 个一次函数 \(f(x) = kx + b\)。 询问给定一个单调增的 \(v\) 与区间 \(l, r\)。 问你区间内函数对于 \ 阅读全文
posted @ 2025-03-02 00:38 FHCovo 阅读(100) 评论(0) 推荐(1)
摘要: YNOI 智慧题 EasyVer1 [Ynoi Easy Round 2015] 世上最幸福的女孩 EasyVer2 小白逛公园 先看 EasyVer2 单点修改 区间查询最大子段和 考虑在线段树维护 前缀max,后缀max,sum,和ansmax 合并的时候分讨即可 修改直接下放到底后回退 pus 阅读全文
posted @ 2025-02-27 12:11 FHCovo 阅读(89) 评论(0) 推荐(0)
摘要: 分块典题 左转数列分块入门2 一样的想法 排序+二分 但是发现我们只能求排名 于是二分答案然后分块+二分即可 阅读全文
posted @ 2025-02-20 09:28 FHCovo 阅读(61) 评论(0) 推荐(0)
摘要: 莫队可以维护种类数 但是无法维护出现次数 考虑离散化以后我们后面腾出了一些空位 那么我们就可以填进那些坑里面 这样做我们就可以用 bitset 直接做与运算 那么 莫队 + bitset 即可 阅读全文
posted @ 2025-02-19 18:09 FHCovo 阅读(39) 评论(0) 推荐(0)
摘要: 莫队 + bitset + 根号分支 乘法似乎是简单的,我们可以直接莫队扫描然后枚举较小数 时间 \((n + m) \sqrt n\)。 加法是一个经典 idea, 莫队套 bitset,然后利用 bitset 的平移来做。 如果会加法,减法就可以解决了,开第二个 bitset 维护 \(1e5 阅读全文
posted @ 2025-02-19 18:06 FHCovo 阅读(82) 评论(0) 推荐(0)
摘要: 由子序列和最值异或可以想到线性基 发现其实线性基满足结合律 考虑线段树进行维护 那么显然的一个想法就是把1操作直接上tag 但是发现上tag其实会丢失线性基的性质 于是差分 将区间修改变为单点修改 考虑在差分数组意义下的2操作 不难发现就是区间左端点右移一位再额外加左端点处的前缀和 直接线段树维护线 阅读全文
posted @ 2025-02-19 09:14 FHCovo 阅读(109) 评论(0) 推荐(0)