01 2020 档案
摘要:需要按照DFS来init,不能用BFS。 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 const int MAXN = 2000
阅读全文
摘要:首先线性基是什么呢。我们考虑我们有n个数。子集数量为2^n个。我们将每个子集内的数全部异或起来。得到一个值。但是我们考虑这些值内会可能存在重复的,太多了。不便于运算。所以我们考虑,能不能除去重复的。 我们假定n个数都是<10^9。我们考虑使用一个30*30的矩阵。其中其中第一行,存一个最高位1
阅读全文
摘要:bitset大概就是让你轻松建立一个很长的二进制数来存东西,并提供了快捷的操作和优美的常数。 #include <bitset> bitset <32> b;32为长度 需要引用头文件,定义一个bitset。 stl的东西,所以从0开始。 支持左右移。 支持下标访问修改。 b.any() b中是否存
阅读全文
摘要:数据不是很大,我们可以通过莫队算法来很轻易的解决这个问题。注意不要搞混n,m变量。 按照一定顺序来进行操作询问,使得重复操作尽可能的少。我们考虑从一个已经得出的[l,r]的答案,转移到[a,b]的答案就是两个点的曼哈顿距离。可以使用最小曼哈顿距离生成树来解决。但是代码量过大。我们有更简单的解决策略。
阅读全文
摘要:直接树链剖分就可以啦。 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 const int MAXN = 110000; 7 typ
阅读全文
摘要:1341 一笔画问题 1 #include <cstdio> 2 #include <algorithm> 3 #include <stack> 4 using namespace std; 5 const int MAXN = 110000,MAXM = 510000; 6 stack <int>
阅读全文
摘要:sum[k]表示对应区间内部,空的花瓶的数量。 对于插花,那么从A开始插F朵花,就是找到从A开始时第一个1和第F个1,然后把这一段全部改0。注意到可能插到结尾花还多,所以先求A到n的空瓶数量和F取个min。 对于拿花,直接把对应区间全部赋值1就行了。 如何找到第rk个1,需要都带一个log,可以在外
阅读全文
摘要:区间加,区间乘,区间修改,区间1到3次方和查询。 (x + a)^2 = x^2 + ax + a^2 (x + a)^3 = x^3 + a^2x + ax^2 + a^3 所以我们发现3次方和再涉及到加法修改时,可以由2次方和推出。2次方和涉及到加法修改时,可以由一次方和推出。 乘法修改更简单,
阅读全文
摘要:给你一棵树,每次修改一个子树的所有值,然后单点查询。 按照DFS序把节点排列(即在DFS中出现的先后次序),同一个子树在序列中连续。 1 #include <cstdio> 2 using namespace std; 3 typedef long long ll; 4 int n,q,T,Tc,c
阅读全文
摘要:给你一个01序列,每次将一个位置变成0或1。问某个位置所在的最长1串多长。 我们维护vec[k],k所代表序列中的最长子串长度,ls[k],k所代表序列中的最长前缀,rs[k],k所代表序列中的最长后缀。 合并很简单,vec[k] = max(vec[k << 1],vec[k << 1 | 1],
阅读全文
摘要:区间开根,区间求和。 最大的int开不到10次根也会变成1。每次开根都暴力处理,最多也不过是10N的复杂度。 所以每个节点维护一个标记,子树所代表的区间是否都小于等于1,成立就不开根了,从而维护复杂度正确性。 注意输入的l和r可能先大后小,需要交换.... 跟BZOJ花神游历各国是一个题。 1 #i
阅读全文
摘要:正常区间修改,然后最后一起暴力查一遍就行了。 区间修改有0,需要用-1做lzy标记.... 1 #include <cstdio> 2 #include <map> 3 #include <algorithm> 4 using namespace std; 5 int col[40000],lzy[
阅读全文
摘要:给一个1e7的白板,然后有1e5次操作,每次选一段区间,涂上颜色i(会覆盖之前的)。问最后一共可以看到几个颜色。 首先1e7线段树开不下,操作只有1e5,我们考虑离散化。 但是普通离散化不行。比如[1,4] [1,2],[4,4]离散化后为[1,3][1,2],[3,3]。原先第一段没被覆盖,但是离
阅读全文

浙公网安备 33010602011771号