随笔分类 - 数据结构--线性基
摘要:题目 P4570 [BJWC2011]元素 分析 完全不明白出题人是不是脑子出了点问题,数据范围出 \(1000\) ,一度让我以为是 \(n^2\log n\)。。 看上去很厉害,确实不太好想,但是如果知道这题要用线性基应该就明白了。 首先一个数存在线性基里面,它最多可以作为一位的基底。 也就是说
阅读全文
摘要:题目 P3857 [TJOI2008]彩灯 分析 线性基模板题。 直接构造线性基,然后可以构造的集合个数就是 \(2^n\) 。 代码 #include<bits/stdc++.h> using namespace std; template <typename T> inline void rea
阅读全文
摘要:题目 分析 线性基有一个奇妙的性质: 于是我们可以把区间修改变成单点修改,然后就是直接线段树维护了。 时间复杂度 \(O(n\log{n}\log^2{V})\) 代码 #include<bits/stdc++.h> using namespace std; template <typename T
阅读全文
摘要:题目 分析 好像是叫:前缀线性基。 可以直接线段树做,三个$\log{}$的,也有两个的做法,这里介绍一种一个的做法。 直接在线性基里面多储存一个:当前这一位最右的位置。 维护就是:对于一个插入,如果当前位是1,并且位置更大,那么替换掉,把原本的当前位继续插入下去。 查询的时候就是如果当前位的有值并
阅读全文
摘要:题目 查询一个数在不去重集合异或和中的排名。 分析 直接贴题解了。 代码 #include<bits/stdc++.h> using namespace std; template <typename T> inline void read(T &x){ x=0;char ch=getchar();
阅读全文