题目大意:给定一棵树,求一条长度在L到R的一条路径,使得边权的平均值最大。 题解 树上路径最优化问题,不难想到点分治。 如果没有长度限制,我们可以套上01分数规划的模型,让所有边权减去mid,求一条路径长度非负。 现在考虑有L和R的限制,就是我们在拼接两条路径的时候,每条路径能够匹配的是按深度排序后 ...
分类:
其他好文 时间:
2018-12-22 11:52:17
阅读次数:
143
谨代表本蒟蒻个人观点,若有错误请大佬指正。 如果你是初学者,请到大佬的博客中观摩,这里是蒟蒻口胡 树和序列都可以认为是某种顺序结构,其中树形结构可以描述一种二位上改变的关系,同样可以表示一种顺序的逻辑。 所以说这和点分治有什么关系QAQ 其实没什么关系。 分治结构基于区间答案可快速合并和区间子问题的 ...
分类:
其他好文 时间:
2018-12-22 01:19:47
阅读次数:
200
题目链接: [WC2018]即时战略 题目大意:给一棵结构未知的树,初始时除1号点其他点都是黑色,1号点是白色,每次你可以询问一条起点为白色终点任意的路径,交互库会自动返回给你这条路径上与起点相邻的节点并且如果这个点为黑色则将它变为白色,要求在不多于给定次数的询问内使所有点变为白色。 大致思路为按一 ...
分类:
其他好文 时间:
2018-12-22 01:09:20
阅读次数:
240
记得是9月月赛题,当时做的时候觉得跟 ZJOI2015幻想乡战略游戏 那道题很像,就写了,~~然后就写挂了。。。~~ 我们发现假设当前点为根,我们算出$m$次询问中最远的$a$对点,如果这$a$对点,全部都两个点在根的不同子树中。当前点就是最优的就是答案。当全部$a$对点都在一个子树中,我们把答案改 ...
分类:
其他好文 时间:
2018-12-17 22:03:17
阅读次数:
200
题意 给一棵树,每条边有权。求一条简单路径,权值和等于 $K$,且边的数量最小。 点分治,求距离时带上经过边的数量即可。用的第一种写法(下面)。 食用淀粉质注意事项 1、 统计子树内答案的两种写法: 跟树形dp一样将某子树与前面的子树合并 或者是 考虑所有子树的答案再容斥,减去不合法的一棵子树内答案 ...
分类:
其他好文 时间:
2018-12-16 00:49:19
阅读次数:
181
引入 考虑比树链剖分稍微简单的情况,统计树上具有某种特殊性质的路径,而不发生修改。(这部分按道理来讲应该接在线段树/树状数组/分块之类的后面学才对啊) 一般来讲这些树都是无根树。 对于一条链,可以取中间的一个点,把它划分为两个部分(分别属于这个点的两课不同子树)。之后可以利用分治的方法对于每一棵树都 ...
分类:
其他好文 时间:
2018-12-14 00:59:58
阅读次数:
165
题解: 路径统计比较容易想到点分治和dp dp的话是f[i][j]表示以i为根,取了i,颜色数状态为j的方案数 但是转移这里如果暴力转移就是$(2^k)^2$了 于是用FWT优化集合或 另外http://www.cnblogs.com/sclbgw7/p/9508235.html给出了一种技巧优化空 ...
分类:
其他好文 时间:
2018-12-12 11:20:39
阅读次数:
199
统计在一个root下的两个子树,每个子树都和前面的运算一下再加进去对于这种需要排序的运算很麻烦,所以考虑先不去同子树内点对的算出合法点对个数,然后减去每一棵子树内的合法点对(它们实际上是不合法的,相当于一个容斥) 算点对用排序+双指针即可 cpp include include include us ...
分类:
其他好文 时间:
2018-12-12 00:23:29
阅读次数:
122
点分治,用一个mn[v]数组记录当前root下长为v的链的最小深度,每次新加一个儿子的时候都在原来儿子更新过的mn数组里更新ans(也就是查一下mn[m dis[p]]+de[p]) 这里注意更新和初始化的时候不能对整个mn操作,这样时间复杂度是错的,要开一个栈存一下更新了哪些点,只初始化这些点即可 ...
分类:
其他好文 时间:
2018-12-11 19:54:07
阅读次数:
159
点分治+SG函数还真是令人意外的组合啊 思路 这道题看到找一条满足条件的链,想到点分治 看到博弈,想到SG函数 然后就变成一道SG函数+点分治的题了 然后1e9的SG函数怎么搞?~~当然是打表了~~ 然后各种出锅 多组数据记得清零 SG函数不要打错表QwQ 因为对着租酥雨julao的blog调了好久 ...
分类:
其他好文 时间:
2018-12-11 19:50:44
阅读次数:
195