05 2022 档案
摘要:multiset和set一样使用,只是multiset可以有重复 下面用set举例 #include <bits/stdc++.h> using namespace std; int main(){ set<int>s; s.insert(1); s.insert(2); s.insert(100)
阅读全文
摘要:1.永世乐土 具体题面 因为是与运算,不妨一位一位的处理, 2进制位从高往低枚举是否能把第i位加入到答案(搜索是否能由起点到终点) 能到达就答案加(1<<i)(i为当前枚举的2进制位),并将原图中的点改变 比如: 2*2的图 4 7 3 4 枚举第2位,那么图转变为 1 1 0 1 问题等效到给你一
阅读全文
摘要:###CDQ分治 总体来讲,学过CDQ分治的人会说这个算法是“偏序的魔术师”。 CDQ分治是cdq发明的算法,它的前身是“分治求逆序对”。 换句话说,整个算法来自于“归并排序”的扩展,就是在归并排序的基础上多做了一点而已。 ####求逆序对 逆序对 点击查看代码 #include<bits/stdc
阅读全文
摘要:###可持久化数据结构 可持久化数据结构要求在每次进行数据结构的维护后都保存一个历史版本,并且支持对这些历史版本的数据结构进行再操作。 这就使得可持久化数据结构具有O(1)的版本维护和拷贝的特性。 比如O(1)复制整个数据结构,O(1)回退到某个历史版本。 我们想一下,其他的数据结构是否都能可持久化
阅读全文
摘要:1.D - Index Trio 设M为最大值,可以证明三元组不会超过MlogM个 d为最大正整数,且,所以三元组不超过 暴力枚举 点击查看代码 #include<bits/stdc++.h> #define ll long long #define pa pair<l
阅读全文
摘要:###莫队 首先对序列进行分块,每个块大小为block 莫队安排的顺序是,首先按照L端点所属的块序号排序,对于L在同一组的块,对R端点单调递增。 因为L被分了组,所以L端点移动的复杂度不会大于block 那R端点呢,因为R端点在每组内移动都是单调的,所以总移动次数为$\frac{N}{block}\
阅读全文