"传送门" 做一道题学一堆东西.jpg 猫老师的题……暴力拿的分好像比打挂的正解多很多啊……我纯暴力+部分分已经能有80了……正解没调对之前一直只有10分→_→ 先说一下什么是边分治。这个其实类似于点分治,不过分治对象从点换成边了,就是每次找到一条边,使其断开之后的两个连通块中最大的最小 于是我们就 ...
分类:
其他好文 时间:
2019-01-14 23:10:49
阅读次数:
241
poj 1741 cpp include include include include using std::sort; using std::max; const int maxn=10100; const int inf=0x7fffffff; struct node { int p; int ...
分类:
其他好文 时间:
2019-01-09 18:54:14
阅读次数:
161
"传送门" 没想到点分治那一层…… 首先不难发现这是个分数规划,先把所有的边长减去$k$,二分答案,设为$mid$,就是要求路径平均值$ans\in[ mid,mid]$ 先来考虑$ans\in[0,mid]$的的情况。我们考虑点分治,记下所有从根节点延伸下去的链,长度记为$len$,边数为$dep ...
分类:
其他好文 时间:
2019-01-09 11:40:02
阅读次数:
250
题面 传送门:https://www.luogu.org/problemnew/show/P4178 Solution 首先,长成这样的题目一定是淀粉质跑不掉了。 考虑到我们不知道K的大小,我们可以开一个splay来统计比某个数小的数的数量。 具体做法等我开淀粉质讲解的坑再满满填(咕) Code ...
分类:
其他好文 时间:
2019-01-02 20:12:38
阅读次数:
230
题目描述: 有一棵N个节点的树, 令d(i,j)为i到j经过的边的条数。有M个炸弹, 第i个炸弹在节点posi上, 威力为power i,它会对所有节点j造成max(0,power i?d(posi,j))的伤害。求出每个节点最终受到的伤害。 算法标签:点分治 思路: 考虑对于每次求点,仅求以当前重 ...
分类:
其他好文 时间:
2018-12-30 13:58:28
阅读次数:
212
题目描述: 给定一个N个结点的树,结点用正整数1..N编号。每条边有一个正整数权值。用d(a,b)表示从结点a到结点b路边上经过边的权值。其中要求a<b.将这n*(n-1)/2个距离从大到小排序,输出前M个距离值。 算法标签:点分治,st表 思路: 处理出点分治序后,思路跟超级钢琴是相同的,对于每一 ...
分类:
其他好文 时间:
2018-12-29 11:17:17
阅读次数:
202
题目描述 题解: 动态 点分治。 点分治可以帮助我们将树上的点分层,如果我们把这些点按生成顺序建树的话,我们会得到一棵点分树。 点分树有一个特别好的性质,就是不管原来的树长什么样,建出来的点分树的深度都大约是$logn$。 而且若在点分树中a有一个儿子b,那么在原树中a的管辖子树(即找a作重心的子树 ...
分类:
其他好文 时间:
2018-12-28 15:22:38
阅读次数:
202
题目描述 题解: 先要建一棵字典序最小的最短路树。 怎么建呢? 想起后缀数组,然后突然意识到可以按字典序依次搜索每一个点。 具体操作就是搜索时将可以转移到的点记录一下,然后按字典序排序,然后一个一个走。 这样最短路径树就建好了。 然后就是点分治+桶。 代码: ...
分类:
其他好文 时间:
2018-12-28 14:07:26
阅读次数:
248
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4372 本以为和 bzoj3730 一样,可以直接双倍经验了; 但要注意一下,树状数组不能查询0位置,所以再开一个 w 数组记录; 论 if 和 continue 的不同...如果要用到两个值, ...
分类:
编程语言 时间:
2018-12-27 22:48:12
阅读次数:
310
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5909 点分治的话,每次要做一次树形DP;但时间应该是 siz*m2 的。可以用 FWT 变成 siz*mlogm ,但这里写的是把树变成序列来 DP 的方法,应该是 nlogn*m 的。 树上的一个点,如果 ...
分类:
其他好文 时间:
2018-12-27 10:29:27
阅读次数:
146