求每个集合是其他多少个集合的真子集树状数组 + 离散化 依据左端点将线段变成点,单点更新,求区间和。#include #include #include #include using namespace std;struct node{ int l,r; int index;}nod[1...
分类:
编程语言 时间:
2015-08-06 12:44:10
阅读次数:
107
异或求和Problem's Link: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1254Mean:Description给你2个区间[A,B]和[C,D],现在只要求你求出区间[A,B]和[C,D]内任意2个整数异或后的和,因为答案可能会很大...
分类:
其他好文 时间:
2015-08-05 18:02:57
阅读次数:
991
树状数组的作用是求区间和和做点更新。
和线段树相比,线段树和树状数组时间复杂度都是nlogn,但是在空间利用上,我们知道,线段树接近满二叉,需要的空间是4倍N,但是我们树状数组的空间和N相同,而且在代码上有明显的优势。
这里我们先看两幅图:
树状数组就是上面的C[],表示的是下面这些数的和。
这里我们可以看到,所有的奇数位置都会表示它本身,如1,3,5,7……它们只包含自己
所有的2的...
分类:
编程语言 时间:
2015-08-04 11:11:09
阅读次数:
148
题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22105
题意:给定整数n和m,给出一个n个元素的序列,查询m次给定区间[L,R]的最大连续和的位置[x,y],有多个区间输出x最小的,还有多个的话输出y最小的。
分析:每个节点存8个信息,最大连续和、最大后缀和、最大前缀和、区间和、前缀末位置、后缀首位置、最大连续和...
分类:
其他好文 时间:
2015-07-31 20:20:05
阅读次数:
182
和I相比有了单点更新,所以不能只记录一个前缀和,而是要在线段树上多维护一个sum,表示这个结点的区间和,然后其他的就和I一样了。#include #include #include using namespace std;const int N = 50001;int a[N];struct Nod...
分类:
其他好文 时间:
2015-07-31 08:58:07
阅读次数:
100
题目链接:点击打开链接
题目大意:
按照题目给出的区间向根部搜,由子区间推到父区间,有四种可能(左右区间和(l+r)的奇偶性):
[ l , 2*r-l ]
[ l , 2*r+1-l ]
[ (l-1)*2-r , r ]
[ (l-1)*2+1-r , r ]
按照这四种方式向上搜,加上剪枝就可以AC
原因是l/(r-l+1)
注意:剪枝的时候当前值>= n 就retur...
分类:
其他好文 时间:
2015-07-29 15:59:58
阅读次数:
285
因为最后要求的是区间和,所以其实color不用存下来,这里将color当做lazy标记:color为-1表示已经pushdown或为初始状态;color为1、2、3时表示区间为相应颜色。 1 #include 2 #include 3 #include 4 using namespace st...
分类:
其他好文 时间:
2015-07-29 15:38:36
阅读次数:
97
题意:
给n和k,再给你n个形成环的数
问你连续不超过k个数的最大和是多少
并输出区间,和一样以左端点最小,再一样以长度最小
思路:
我们记录前缀和sum[i]
开一个单调队列维护sum[i-1]的值最小
因为对于到当前位置的和为sum[i]-sum[j] 如果sum[j]越小,那么sum[i]就越大
所以里面维护的就是到当前位置符合要求最小的sun[j]
代码:
#inclu...
分类:
其他好文 时间:
2015-07-27 15:03:50
阅读次数:
113
//0 a b 将[a,b]区间的所有数变为0
//1 a b 将[a,b]区间的所有数都变为1
//2 a b 将[a,b]区间的所有数0变1,1变0
//3 a b 问[a,b]区间的1的个数
//4 a b 问[a,b]区间最长的连续1的子段长度
//维护ma_l[2] , ma_r[2] , ma[2] ,sum[2]分别为区间左边,右边,最大的连续1和0,,区间1和0的个数
//lazy...
分类:
其他好文 时间:
2015-07-26 14:16:30
阅读次数:
105
题意:
给出一个长度为n的初始序列,和m次操作;
A操作:在序列后面加入一个数;
Q操作:给出一段区间[l,r]和一个数x,求区间中的p使p的后缀异或和与x的异或值最大;
n,m
题解:
可持久化数据结构(2/4)进行中... ...
先做一个转化,因为是在序列后面加数,维护后缀和并不容易;
但是由于异或性质可以转化成前缀和的问题;
也就是在区间中选一个数,使其与另一...
分类:
其他好文 时间:
2015-07-25 18:35:02
阅读次数:
160