Skip to main content
  1. Posts/

莫队算法总结

·1 min
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

写了几道莫队,总结下。 目前只会区间莫队。。树上莫队以后再补。

莫队算法学习

说说我自己的理解: 莫队算法是一类用来处理离线静态区间问题的算法。 必须是离线,而且对区间没有修改。 还要满足,如果我们知道区间[l,r]的答案,那么知道区间[l-1,r],[l+1,r],[l,r-1],[l,r+1]的答案都是平凡的。。也就是O(1)可以实现才可以。

本质的话。。感觉就是分块+暴力? 通过离线操作,把查询按照某种顺序均分使得复杂度降低。

除了bzoj的权限题。。。区间莫队基本都A掉了。

Related

hdu 5145 NPY and girls

http://acm.hdu.edu.cn/showproblem.php?pid=5145 题意:有n个女孩,编号1..n,第i个女孩在第a[i]个教室,m次访问,每次访问编号[L,R]的女孩,处于同一个教室的女孩一次只能访问一个,问有多少种访问方案。两个不同的方案当且仅当访问的顺序有所不同。

codeforces 220 B. Little Elephant and Array

·2 mins
http://codeforces.com/contest/220/problem/B 题意:n个数,m个查询区间,对于每一个区间[l,r]输出区间中cnt[x]==x的数的个数。 # 思路:首先,a[i]很大。。。但是n最大才1e5…每个a[i]最多出现1E5次。。所以对于大于1E5的a[i]对答案没有贡献。其次,上莫队算法。

codeforces 86 D. Powerful array (莫队算法)

·2 mins
http://codeforces.com/problemset/problem/86/D # 题意:Ks为区间内s的数目,求区间[L,R]之间所有KsKss的和 # 思路:莫队算法,和小z的袜子差不多。不明白第一次tle#54是什么情况。把每一块的大小改成了常数之后就过了。 # 再交一遍就过了。。不过貌似根据最大数据把siz大小设置成一个常数比根号n要块很多==