【树分治】
riba2534
没有谁生来就是神牛,而千里之行,始于足下!
展开
-
点分治学习
点分治学习笔记转自Menci的博客:点分治学习笔记点分治是用来解决树上路径问题的一种方法。在解决树上路径问题时,我们可以选取一点为根,将树转化为有根树,然后考虑经过根的所有路径(有时将两条从根出发的路径连接为一条)。统计完这些路径的答案后,将根节点标记为删除,对剩下的若干棵树进行同样的操作。如图,我们可以先考虑经过节点 111 的路径,之后将节点 111 标记为删除,此时可以认为考虑过的...转载 2018-10-12 18:40:46 · 255 阅读 · 0 评论 -
POJ1741 Tree(点分治,带详解)
DescriptionGive a tree with n vertices,each edge has a length(positive integer less than 1001).Define dist(u,v)=The min distance between node u and v.Give an integer k,for every pair (u,v) of vert...原创 2018-10-12 19:01:51 · 337 阅读 · 0 评论 -
BZOJ2152 聪聪可可(点分治)
描述聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。接...原创 2018-10-12 21:00:06 · 200 阅读 · 0 评论 -
BZOJ1316 树上的询问(点分治)
题目描述:一棵n个点的带权有根树,有p个询问,每次询问树中是否存在一条长度为Len的路径,如果是,输出Yes否输出No.输入描述:第一行两个整数n, p分别表示点的个数和询问的个数. 接下来n-1行每行三个数x, y, c,表示有一条树边x→y,长度为c. 接下来p行每行一个数Len,表示询问树中是否存在一条长度为Len的路径.输出描述:输出有p行,Yes或No.样例输入:...原创 2018-10-15 12:39:38 · 418 阅读 · 0 评论 -
BZOJ2599 [IOI2011]Race(点分治)
题目描述:给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小.输入描述:第一行 两个整数 n, k第二…n行 每行三个整数 表示一条无向边的两端和权值 (注意点的编号从0开始)(n≤200000,K≤1000000)输出描述:一个整数 表示最小边数量 如果不存在这样的路径 输出-1样例输入:4 30 1 11 2 21 3 4样例输出:2思...原创 2018-10-19 18:51:49 · 226 阅读 · 0 评论