
线段树
文章平均质量分 64
y20070316
这个作者很懒,什么都没留下…
展开
-
【BZOJ】3339 - Ⅱ - 变式Ⅰ
【题意】 有一个长度为nn的数组a1,a2,…,ana_1,a_2,…,a_n。mm次询问,每次询问一个区间[l,r][l,r]内最小没有出现过的自然数mex(al,al+1,...,ar)mex(al,al+1,...,ar)。【数据范围】 n,q≤200000n,q\leq 200000 0≤ai≤2000000\leq a_i\leq 200000且ai∈Za_i\in Z 0<l≤r原创 2016-01-21 21:47:55 · 397 阅读 · 0 评论 -
【SPOJ】Count on a Tree Ⅱ (COT2)
Foreword既然今天把莫队算法给复习了,又要准备AC糖果公园,那么就把树上莫队也给再写一遍先吧……OverviewYou are given a tree with N nodes. The tree nodes are numbered from 1 to N. Each node has an integer weight.We will ask you to perfrom the fol原创 2016-01-23 21:09:42 · 535 阅读 · 0 评论 -
【BZOJ】1878 HH的项链
Overview求区间不同数的个数。 N≤50000N\leq 50000,M≤200000M\leq 200000Analysis1. 莫队算法多个区间询问,有在线和离线的方法。先考虑离线吧。 按照块排序,使用莫队算法可以轻松解决。时间复杂度:O(nn−√)O(n\sqrt n)代码:#include <cstdio>#include <cmath>#include <cctype>#i原创 2016-01-23 23:39:11 · 727 阅读 · 1 评论 -
【BZOJ】3339 RMQ Problems - Ⅰ - 题解
【题意】 有一个长度为nn的数组a1,a2,…,an{a_1,a_2,…,a_n}。mm次询问,每次询问一个区间[l,r][l,r]内最小没有出现过的自然数mex(al,al+1,...,ar)mex(a_l,a_{l+1},...,a_r)。 【数据范围】 n,q≤200000n,q\leq 200000 0≤ai≤2000000\leq a_i\leq 200000且ai∈Za_i\in原创 2016-01-21 17:02:11 · 670 阅读 · 0 评论 -
【BZOJ】3339 - Ⅲ - 变式Ⅱ+变式Ⅲ
变式Ⅱ【题意】 有一个长度为nn的数组a1,a2,…,ana_1,a_2,…,a_n。mm次询问,每次询问一个区间[l,r][l,r]内次小没有出现过的自然数mex2(al,al+1,...,ar){mex}_2(al,al+1,...,ar)。【数据范围】 n,q≤200000n,q\leq 200000 0≤ai≤2000000\leq a_i\leq 200000且ai∈Za_i\in原创 2016-01-21 22:05:19 · 439 阅读 · 0 评论 -
【BZOJ】1012 最大数
题目维护一个数列,两种操作: 1. 查询操作 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。 限制:L不超过当前数列的长度。 2. 插入操作 语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。 限制:n是非负整数并且在长整范围原创 2016-01-31 11:24:15 · 413 阅读 · 0 评论 -
[CodeForces #80 Div 1 D] 分块+树状数组/线段树
Part 1 题解题意给出一个长度为N(≤300000)N(\leq 300000)的数列aia_i,再给出MM个询问,每个询问是形如(x,y)(x,y)的形式,你需要输出ax+ax+y+ax+2y+...+ax+kya_x+a_{x+y}+a_{x+2y}+...+a_{x+ky}的和,其中x+(k+1)y>Nx+(k+1)y>N。分析对于每个询问,首先我们想到的方法是依次将axa_x,ax+ya原创 2016-02-03 17:59:23 · 768 阅读 · 0 评论 -
CodeChef "Chef and Churus" 分块+树状数组
题意给定nn个数和nn个区间和f[i]=∑rik=liakf[i]=\sum_{k=l_i}^{r_i} a_k,支持两种操作: 1. 将aia_i变为xx; 2. 求编号为xx到yy的所有ff的和。n≤100000n\leq 100000分析对于每个fif_i,可以直接使用树状数组求出。 所以我们可以使用分块,中间的直接用块的答案,边上的用树状数组。首先我们进行预处理,记录第i块中每个编号的原创 2016-02-02 17:11:22 · 566 阅读 · 0 评论 -
【BZOJ 2243】染色 - 树链剖分+线段树
#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;const int N=100001;int n,m,color[N]; //Basicstruct G{ int v,nxt;}map[N+N];int hd[N],tt; //Graphint son[N],dep[N]原创 2016-03-12 15:51:27 · 342 阅读 · 0 评论