既然选择要继续,就要继续努力辣 距离WC的时间也不多了,先复习和学习一波算法 数据结构 主席树[] 线段树合并[] CDQ分治[] 线段树分治[] 虚树[] 可持久化01trie[] 整体二分 KD tree[] 点分治[] splay[] LCT[] dsu[] 长链剖分[] 左偏树[] 算法 模 ...
分类:
其他好文 时间:
2018-11-24 11:45:20
阅读次数:
253
题意 "Here" 思考 最近学习一下点分治 本题点分治裸题,也可以用树形 $dp$ 做,在此记录一下点分治的做法: 首先题目要求求出边权和为 $3$ 的倍数的路径个数和,那么我们可以将路径和对 $3$ 取模,树上路径就只分为了三种: $0,\ 1,\ 2$,用一个桶记录个数,那么每次点分治计算的答 ...
分类:
其他好文 时间:
2018-11-23 23:27:51
阅读次数:
193
Tree 点分治 题目链接:https://www.luogu.org/problemnew/show/P4178 对于点分治,我们每次处理一个重心的时候: 用b数组存这个重心处理到当前连边儿子,以这个儿子为根的子树,这颗子树的每个节点到重心的路径长 用p数组存这个重心所有连边儿子的b数组(目的是为 ...
分类:
其他好文 时间:
2018-11-17 17:49:40
阅读次数:
123
传送门 本来想用点分治做,结果root又求不对 算的时候还算错了 我好菜啊 结果szr大佬告诉我是树形dp 我好菜啊!! 我们有$\lceil \frac{x}{k} \rceil = \frac{x+(k-x)\%k}{k}$ 于是可以把这个拆成两部分来求,最后加在一起再除个k 距离和很好求,连接 ...
分类:
其他好文 时间:
2018-11-09 16:01:41
阅读次数:
256
题目大意:给定一棵 N 个节点的无根树,边有边权,统计树上边权和不大于 K 的路径数。 对于每条树上路径,对于每一个点来说,该路径只有经过该点和不经过该点两种情况,对于不经过该点的情况,可以转化成是否经过以该点为树根的子树节点的子问题,由此构成一个分治策略。 对于点分治来说,限制算法复杂度的瓶颈之一 ...
分类:
其他好文 时间:
2018-11-06 00:47:43
阅读次数:
140
poj1741板子套一套,统计对数的方式改一下,可以在O(n)时间内统计对数 最后不要忘记输出最后的“.” ...
分类:
其他好文 时间:
2018-10-27 23:36:43
阅读次数:
363
本文代码来源:https://blog.csdn.net/yang_7_46/article/details/9966455 本文参考论文来源:https://wenku.baidu.com/view/8861df38376baf1ffc4fada8.html?re=view 基于点分治的树分治算法 ...
分类:
其他好文 时间:
2018-10-27 01:28:05
阅读次数:
188
来看一道题 给定一棵有n个点的树 询问树上距离为k的点对是否存在。 对于30%的数据n include include using namespace std; int cnt=0,fa[500000],siz[500000],son[500000],dep[500000],top[500000], ...
分类:
其他好文 时间:
2018-10-21 21:54:21
阅读次数:
194
题目大意:给你一棵n个点的树,树边上有边权,对于每一个点,你要求出经过该点的所有的路径中,路径异或和最大的值。 数据范围:$n≤10^5$,边权$≤10^9$。 我们考虑枚举每一条路径,显然这个是会T的,于是我们用点分治来实现这个过程。 对于一棵以$x$为根的子树,假设它有$k$个儿子,编号$v1. ...
分类:
其他好文 时间:
2018-10-19 00:07:41
阅读次数:
148
题目传送门 Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 30475 Accepted: 10232 Description Give a tree with n vertices,each edge has a le ...
分类:
其他好文 时间:
2018-10-18 01:04:20
阅读次数:
170