随笔分类 -  数据结构-点分治

摘要:题目链接 "BZOJ3672" 题解 如果暂时不管l[i]的限制,并假使这是一条链 设f[i]表示i节点的最优答案,我们容易得到dp方程 f[i]=min{f[j]+(d[i]d[j])p[i]+q[i]} 显而易见可以斜率优化 化为 $$f[j] = p[ 阅读全文
posted @ 2018-06-25 17:52 Mychael 阅读(141) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3451" 题解 考虑每个点产生的贡献,即为该点在点分树中的深度期望值 由于期望的线性,最后的答案就是每个点贡献之和 对于点对(i,j),考虑j成为i祖先的概率,记为P(i,j) 那么 $$ans = \sum\limits_{i = 1}^{n}\sum\lim 阅读全文
posted @ 2018-06-10 11:46 Mychael 阅读(228) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4568" 题解 选任意个数异或和最大,使用线性基 线性基插入O(logn),合并O(log2n) 我们要求树上两点间异或和最大值,由于合并是O(log2n)的,我们尽量只合并一次 那就采用点分治 每次求出到分治重心的线性基,将过分治重心的询问的两个线性基合并即可 阅读全文
posted @ 2018-05-19 09:03 Mychael 阅读(308) 评论(0) 推荐(0) 编辑
摘要:题目 lrb有一棵树,树的每个节点有个颜色。给一个长度为n的颜色序列,定义s(i,j) 为i 到j 的颜色数量。以及 现在他想让你求出所有的sum[i] 输入格式 第一行为一个整数n,表示树节点的数量 第二行为n个整数,分别表示n个节点的颜色c[1],c[2]……c[n] 接下来n 1行,每行为两个 阅读全文
posted @ 2018-04-23 19:37 Mychael 阅读(263) 评论(0) 推荐(0) 编辑
摘要:题目简述 一个N个节点的树,有M个炸弹分布在一些节点上,有各自的威力,随着其他点距离增大对其他点的伤害呈等差减小,直至为0 问每个点受到的伤害 题解 QAQ考场代码没处理好有些炸弹威力很大这个事实,,数组爆掉。。。 AC算法直接变暴力分,,, 点分治即可 我是每次将子树内所有的炸弹统计到根来 阅读全文
posted @ 2018-04-03 21:25 Mychael 阅读(170) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示