Loading

摘要: 1 前言 线段树一直是高频考点,可以直接出也可以作为数据结构优化其他算法。这里我只想说说线段树的基本理解以及如何构造,也就是如何写出信息和标记,信息之间的合并,标记之间的复合,信息和标记之间的复合。以及矩阵的辅助理解,区间最值、历史版本相关问题。 2 线段树 线段树运用了分治的思想,将每个大区间分成 阅读全文
posted @ 2024-11-21 16:28 Fire_Raku 阅读(2) 评论(0) 推荐(0) 编辑
摘要: P2839 [国家集训队] middle 二分+可持久化线段树 中位数经典做法,二分答案,将小于的部分看做 \(-1\),大于等于的部分看做 \(+1\),那么答案可以更大的条件就是区间和大于等于 \(0\)(等于 \(0\) 可不可以取到看是下取整还是上取整,本题是上取整)。 那么问题就是怎么判断 阅读全文
posted @ 2024-10-24 20:41 Fire_Raku 阅读(3) 评论(0) 推荐(0) 编辑
摘要: P2685 [TJOI2012] 桥 最短路 + 线段树 是经典题了:求图中删去其中一条边后,\(1\) 到 \(n\) 最短路的最大值。 显然的,删去的边一定在原图的最短路上。然后就没思路了。 朴素的,枚举最短路上的边删去,各跑一次最短路,复杂度 \(O(nm\log n)\) 级别的。 这种想法 阅读全文
posted @ 2024-10-16 17:21 Fire_Raku 阅读(2) 评论(0) 推荐(0) 编辑
摘要: P11189 「KDOI-10」水杯降温 DP+二分 挺好的一题。首先很容易看到操作顺序不影响答案,所以考虑先 -1 再 +1,这时候分析什么状态可以用若干 +1 操作有解。 这时候手玩几棵树可以总结出: 父亲节点一定要大于等于儿子。 根节点要小于等于 \(0\)。 容易发现两个操作只会让父亲节点与 阅读全文
posted @ 2024-10-16 08:45 Fire_Raku 阅读(13) 评论(0) 推荐(0) 编辑
摘要: CF1732C2 Sheikh (Hard Version) 如果知道一个关键性质,\(a-b\le a\oplus b\le a+b\)。 那么可以证得,从当前区间一端拓展一个数 \(b\),\((x+b)-(y\oplus b)\ge (x+b)-(y+b)=x-y\),这意味着区间越大,答案不 阅读全文
posted @ 2024-10-16 08:31 Fire_Raku 阅读(2) 评论(0) 推荐(0) 编辑
摘要: bitset 有点厉害,必须要学了。 介绍 bitset 可以看成是一个每个位置都是 \(0\) 或 \(1\) 的 bool 数组。与 bool 数组相比,它的空间复杂度是其 \(\frac{1}{32}\),时间复杂度也是 \(\frac{1}{32}\),还支持位运算,所以不论是用处还是效率基 阅读全文
posted @ 2024-08-08 20:10 Fire_Raku 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 菜啊。 阅读全文
posted @ 2024-08-06 21:53 Fire_Raku 阅读(7) 评论(0) 推荐(0) 编辑
摘要: A gcd 的题可以往质因数方面思考。 手玩一个样例可以发现一个显然的性质:只要能操作就操作一定更优。 然后又发现操作不改变原本存在的质因数的幂次,操作相当于若干质因数的幂次重新组合。 考虑怎么样让答案最大,可以想到分别将质因数的幂次从大到小排序后,每次取出最上面的若干质因数组合起来形成新的数最优。 阅读全文
posted @ 2024-08-04 16:07 Fire_Raku 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 今天的题不算难,但是没做出一题,有点失败。 A 你打完表之后发现并没有什么出色的性质。只能考虑爆搜。 代码好写,但是你要分析复杂度。 最关键的一点是每一次递归至少多一个 \(1\),而 \(1\) 可以直接 return,所以最多递归 \(m\) 次就够了。 #include <bits/stdc+ 阅读全文
posted @ 2024-08-02 20:50 Fire_Raku 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 为什么我这么菜? 阅读全文
posted @ 2024-07-30 16:37 Fire_Raku 阅读(11) 评论(0) 推荐(0) 编辑