随笔分类 - 线段树
摘要:题意:长度为n的序列上有两种操作 0 ql qr 输出区间[ql,qr]和 1 ql qr v 区间[ql,qr]赋值为v 线段树懒标基础题,我用分块写了一个,在本题数据竟然跑的飞快
阅读全文
摘要:线段树练手题,单点修改,区间查询,写个分块试试,分块下标用0-n-1比较好写
阅读全文
摘要:题意:给n个数,每次查询[l,r]的和,然后[l,r]之间的数都会由ai变为ai^2,开始计数器为0,每次在上一次的基础上,为计数器+sum[l,r],答案%9223372034707292160 分析:猜想一个数的平方%p应该会很快进入静止,即ai^2%p=ai,这样这个数就不会更新,用java跑
阅读全文
摘要:#include using namespace std; const int maxn=1e5+5; char s[maxn]; int pre[maxn],Min[maxn>1; build(rt=r)return Min[rt]; int mid=(l+r)>>1; int res=INT_MAX; if(qlmid)res=min(res,query(rtv)swap(u,...
阅读全文
摘要:有n(1e6)个点,m(1e5)次询问,最多有30种颜色,有两种操作 p a b c,把区间a,b都变成颜色c,Q a b,查询a b间的颜色,并且按照值大小输出,初始所有点的颜色都是2 分析:线段树维护区间,因为最多有30种颜色,可以用30位的0/1表示该颜色是否存在,然后编码为数就好了,加个懒标
阅读全文
摘要:题意:r*c的矩阵上,初始全部为0,有3中操作,子矩阵全部增加v,子矩阵值修改为v,查询子矩阵的最大值,最小值,和 分析:因为有setv和addv两种操作,那么需要开两个数组记录这个值,每次需要用到一个节点的儿子,那么就把该节点的setv,addv信息推过去,并且setv的优先级要高于addv,不过
阅读全文
摘要:题意:给出n个数,0<=k<=n-1,每次将第一个数放到最后,求最小的逆序数 分析:每次将开头的数num[i]放到最后,后面比num[i]小的数有num[i]个,所以减少num[i]个逆序数对,num[i[放到最后,前面比它大的数有n-1-num[i]个,所以每次操作后,当前的逆序数ans+n-2*
阅读全文

浙公网安备 33010602011771号