随笔分类 - 莫队算法
摘要:题目链接 Codeforces Round #466 (Div. 2) Problem F 题意 给定一列数和若干个询问,每一次询问要求集合$\left\{c_{0}, c_{1}, c_{2}, c_{3}, ...,c_{10^{9}}\right\}$的$mex$ 同时伴有单点修改的操作。 根
阅读全文
摘要:题目链接 数列查找 考虑分块然后跑莫队, 设$c[i]$为$i$在当前维护的区间内出现的次数, $g[i]$为在当前维护的区间内有多少个数出现次数为$i$, $bg[i]$把出现次数分块,$bg[i]$的意义是第$i$个块代表的所有出现次数中出现的个数。 $f[i][j]$对$1$到$n$分块,意义
阅读全文
摘要:题目链接 Yet Another Minimization Problem 题意 给定一个序列,现在要把这个序列分成k个连续的连续子序列。求每个连续子序列价值和的最小值。 设$f[i][j]$为前$i$个数分成$j$段的最优解 不难得出状态转移方程$f[i][j] = min(f[k][j - 1]
阅读全文
摘要:题目链接 BZOJ4540 考虑莫队算法。 这题难在$[l, r]$到$[l, r+1]$的转移。 根据莫队算法的原理,这个时候答案应该加上 $cal(l, r+1) + cal(l+1, r+1) + cal(l+2, r+1) + ... + cal(r+1, r+1)$ $cal(l, r)$
阅读全文
摘要:题目链接 Tree and Queries 题目大意 给出一棵树和每个节点的颜色。每次询问$vj, kj$ 你需要回答在以$vj$为根的子树中满足条件的的颜色数目, 条件:具有该颜色的节点数量至少为$kj$。 (莫队居然可以过) 首先转$DFS$序,这样就变成了区间查询。 然后直接套用莫队,求出每次
阅读全文
摘要:题目链接 BZOJ 4810 首先对询问离线, 莫队算法处理。 首先我们可以用bitset维护处当前区间中是否存在某个数。 对于询问1, 我们可以用 ((f >> q[i].x) & f).any()来回答当前的询问。 对于询问2, 我们用((g >> (S - q[i].x)) & f).any(
阅读全文
摘要:题目链接 Powerful array 给你n个数,m次询问,Ks为区间内s的数目,求区间[L,R]之间所有Ks*Ks*s的和。 $1<=n,m<=200000, 1<=s<=10^{6}$ 考虑莫队算法 把区间排序,然后让l和r分别询问即可。 根据排序的方式,l指针和r指针移动次数和大概是$n\s
阅读全文
摘要:题目链接 HH的项链 这道题可以直接上主席树的模板 当然用莫队算法也是可以做的
阅读全文

浙公网安备 33010602011771号