简介 树上莫队,顾名思义就是把莫队搬到树上。 我们从一道题目入手[SDOI2018]原题识别 SPOJ Count on a tree II 题目意思很明确:给定一个$n$个节点的树,每个节点表示一个整数,问$u$到$v$的路径上有多少个不同的整数。 像这种不带修改数颜色的题首先想到的肯定是树套树莫 ...
分类:
编程语言 时间:
2018-06-25 12:59:50
阅读次数:
748
题目描述 给定一个n个节点的树,每个节点表示一个整数,问u到v的路径上有多少个不同的整数。 输入格式 第一行有两个整数n和m(n=40000,m=100000)。 第二行有n个整数。第i个整数表示第i个节点表示的整数。 在接下来的n-1行中,每行包含两个整数u v,描述一条边(u,v)。 在接下来的 ...
分类:
其他好文 时间:
2018-06-24 21:07:11
阅读次数:
144
传送门 题意:给你一棵树,询问u到v路径上的第k大 题解:从u到v的路径能想到,u到根+v到根-lca(u,v)到根-fa[lca(u,v)]到根剩下的就是u到v之间的路径。因此只要离散化一下,每次dfs的时候处理倍增lca和主席树更新操作就可以 ...
分类:
其他好文 时间:
2018-05-27 23:42:08
阅读次数:
198
Discription You 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 perform th ...
分类:
其他好文 时间:
2018-05-21 17:53:53
阅读次数:
226
题意; 一棵N个节点的树,有点权。M次询问,每次询问点(u,v)路径上有多少个权值不同的点。 题解: 树上开莫队,分块方法可以参照BZOJ1086题的方式。按照询问点(u,v)所在块将询问进行排序。更新路径时用vis数组标记路径上的点是否访问过。 #include <bits/stdc++.h> u ...
分类:
其他好文 时间:
2018-04-29 22:13:06
阅读次数:
189
题意 给定一个n个节点的树,每个节点表示一个整数,问u到v的路径上有多少个不同的整数。 n=40000,m=100000 Sol 树上莫队模板题 cpp include define RG register define IL inline define Fill(a, b) memset(a, b ...
分类:
其他好文 时间:
2018-04-06 10:54:19
阅读次数:
170
"luogu" 题意 给定一个n个节点的树,每个节点表示一个整数,问u到v的路径上有多少个不同的整数。 sol 也就是路径数颜色。树上莫队板子题。 我这种分块的姿势貌似是假的。 所以跑的是最慢的QAQ。 code cpp include include include using namespace ...
分类:
其他好文 时间:
2018-04-03 22:07:01
阅读次数:
141
Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k), ...
分类:
其他好文 时间:
2018-04-01 13:11:57
阅读次数:
140
"题目链接" (同上一题苹果树) 为什么第10个点T了一晚上。。 下面那个却AC了?跑的也不慢。 TLE: cpp / 在DFS序做莫队 当一个点不是另一个点的LCA时,需要加上它们LCA的贡献 / include include include include define gc() getcha ...
分类:
其他好文 时间:
2018-02-27 10:21:57
阅读次数:
202
题解:主席树,上一层为父亲节点对应的主席树 查询就用 u+v-lca-fa[lca]即可 ...
分类:
其他好文 时间:
2018-02-21 12:19:35
阅读次数:
166