莫队算法,先处理dfs序,然后将询问进行一下处理,假设询问x,y两点,x的的dfs序区间是[xl,xr],y的dfs序是[yl,yr],那么这两个区间如果包含,那么询问区间[min(xl,yl),max(xl,yl)],否则询问区间[min(xr,yr),max(xl,yl)]。对于算法当前处理的一 ...
分类:
移动开发 时间:
2016-04-18 16:55:32
阅读次数:
241
莫队算法,只考虑对一个序列加入数字的话,重要度的维护是O(1)的,排完序后的询问,若左端点是在同一块中的话,右端点递增。因为右端点是递增的因此可以O(1)维护,而左端点的话,对于每个询问我们可以暴力插入,询问后还原,对于一次询问来说是O(sqrtn)的 ,因此总复杂度O(nsqrtn) ...
分类:
其他好文 时间:
2016-04-16 15:13:13
阅读次数:
194
莫队算法第一题。 强制类型转换没写,WA了好久才发现...... ...
分类:
其他好文 时间:
2016-04-16 13:51:43
阅读次数:
203
比较容易想到莫队算法+线段树,但是这样时间复杂度是O(nsqrtnlogn)无法通过,考虑如果不进行删除操作,只有添加操作的话那么并查集就可以实现了,于是可以设定sqrtn块,每个块范围为(i-1)*sqrtn到i*sqrtn,那么对于一个左端点在该块之中的询问,若右端点超过块的范围,由于右端点递增 ...
分类:
其他好文 时间:
2016-04-13 20:45:53
阅读次数:
197
【题意】 有若干个询问,询问路径u,v上的颜色总数,另外有要求a,b,意为将a颜色看作b颜色。 【思路】 vfk真是神系列233。 Quote: 用S(v, u)代表 v到u的路径上的结点的集合。 用root来代表根结点,用lca(v, u)来代表v、u的最近公共祖先。 那么 S(v, u) = S ...
分类:
移动开发 时间:
2016-04-01 12:50:11
阅读次数:
280
题目链接: D. Powerful array An array of positive integers a1,?a2,?...,?an is given. Let us consider its arbitrary subarray al,?al?+?1...,?ar, where 1?≤?l
分类:
编程语言 时间:
2016-03-23 00:39:55
阅读次数:
260
和BZOJ2038差不多。。复习一下。 1 #include<cstdio> 2 #include<cmath> 3 #include<algorithm> 4 using namespace std; 5 int block; 6 struct Query{ 7 int i,l,r; 8 bool
分类:
编程语言 时间:
2016-03-07 23:59:10
阅读次数:
472