[BZOJ3052][UOJ#58][WC2013]糖果公园(树上莫队) 题面 UOJ 洛谷 Candyland 有一座糖果公园,公园里不仅有美丽的风景.好玩的游乐项目,还有许多免费糖果的发放点,这引来了许多贪吃的小朋友来糖果公园游玩. 糖果公园的结构十分奇特,它由 n 个游览点构成,每个游览点都有一个糖果发放处,我们可以依次将游览点编号为 1 至 n.有 n – 1 条 双向道路 连接着这些游览点,并且整个糖果公园都是 连通的 ,即从任何一个游览点出发都可以通过这些道路到达公园里的所有其它游览…
[BZOJ3052][wc2013]糖果公园 Description Input Output Sample Input Sample Input Sample Output 84 131 27 84 HINT 题解:区间中的带修改的莫队做法:将块的大小设为n^2/3,将所有询问按照(l所在块,r所在块,time)排序,每次暴力移动三个指针即可. 树上莫队做法:将树按siz分块(如果fa的siz<B则加入到fa的块中,否则新建一块),将询问按(l所在块,r的DFS序)排序,每次暴力移动两个指针即…
2016-05-09 UPD:学习了新的DFS序列分块,然后发现这个东西是战术核导弹?反正比下面的树分块不知道要快到哪里去了 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 50003; const int M = 100003; void read(int &k) { k = 0; in…
传送门 题意: 单点修改,求一条链的mex 分块维护权值,$O(1)$修改$O(S)$求mex...... 带修改树上莫队 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long ll; ; inline int read(){ ,f=;…
Description Input Output Sample Input 4 3 51 9 27 6 5 12 33 13 41 2 3 21 1 21 4 20 2 11 1 21 4 2 Sample Output 84 131 27 84 HINT Solution 一个讲解 还是改成括号序的写法吧……感觉好理解还好码…… 一开始插入和删除函数是像下面这样分开写的,$vis$函数加加减减不知道哪里错了……如果有大爷看出来哪里错了和我说一声啊QAQ void Ins(int x) { vi…
题目描述 给出一棵树,点有点权.支持两种操作:修改一个点的点权,查询链上mex. 输入 第一行包括两个整数n,m,代表树上的结点数(标号为1~n)和操作数.第二行包括n个整数a1...an,代表每个结点的食材初始的美味度.接下来n-1行,每行包括两个整数u,v,代表树上的一条边.接下来m行,每行包括三个整数0 u x 代表将结点u的食材的美味度修改为 x.1 u v 代表询问以u,v 为端点的链的mex值. 输出 对于每次询问,输出该链的mex值. 样例输入 10 10 1 0 1 0 2 4…
题目描述 给出一棵n个点的树,每个点有一个点权,点权范围为1~m.支持两种操作:(1)修改一个点的点权 (2)对于一条路径,求$\sum\limits_{i=1}^m\sum\limits_{j=1}^{s_i}V_iW_j$,其中$s_i$表示这条链上权值为i的点数. 输入 输出 样例输入 4 3 51 9 27 6 5 12 33 13 41 2 3 21 1 21 4 20 2 11 1 21 4 2 样例输出 84 131 27 84 题解 带修改树上莫队 带修改树上莫队——普通莫队的…
树上莫队和普通的序列莫队很像,我们把树进行dfs,然后存一个长度为2n的括号序列,就是一个点进去当作左括号,出来当作右括号,然后如果访问从u到v路径,我们可以转化成括号序列的区间,记录x进去的时候编号为f[x],出来时为g[x],然后分类讨论一下(f[u]<f[v]),如果u和v的lca不是u,那么就是从g[u]到f[v],否则就是lca的f到另一个点的f,(可以自己试一下,中间过程没有用的点正好就抵消掉了)这里要注意一下,从g[u]到f[v]的时候我们会少掉lca这个点,特殊处理一下即可,然后…
3757: 苹果树 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1305  Solved: 503[Submit][Status][Discuss] Description 神犇家门口种了一棵苹果树.苹果树作为一棵树,当然是呈树状结构,每根树枝连接两个苹果,每个苹果都可以沿着一条由树枝构成的路径连到树根,而且这样的路径只存在一条.由于这棵苹果树是神犇种的,所以苹果都发生了变异,变成了各种各样的颜色.我们用一个到n之间的正整数来表示一种颜色.树上…
构建:像线性的莫队那样,依旧是按sqrt(n)为一块分块. int dfs(int x){ ; dfn[x]=++ind; ;i<=;i++) if (bin[i]<=deep[x]) fa[x][i]=fa[fa[x][i-]][i-]; else break; for (int i=first[x];i;i=next[i]){ int pur=go[i]; ]){ fa[pur][]=x; deep[pur]=deep[x]+; size+=dfs(pur); if (size>=b…