摘要: 分块是一种暴力做法的优化。 基本思想是把要操作的对象分为根号n份,然后按份进行操作。 模板题: #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e5 + 10; struct Node 阅读全文
posted @ 2023-11-19 15:26 深渊之巅 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 跳表RMQ算法 求解静态区间最值的一种算法。 f[i][j] 表示 从i出发,长度为2^j这一段区间的最大值。 初始化和递推: void init() { for(int j = 0; j < M; j ++ ) { for(int i = 1; i + (1 << j) - 1 <= n; i + 阅读全文
posted @ 2023-11-19 13:13 深渊之巅 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 离散化算法常用来解决负值问题和取值范围过大问题。 模板: 使用lower_bound或者库函数set,map来写 写法1.lower_bound速度快 // 把要进行离散化的值排序去重后放入alls数组中,用二分进行映射。int find(int x) { return lower_bound(al 阅读全文
posted @ 2023-11-19 10:01 深渊之巅 阅读(26) 评论(0) 推荐(0) 编辑