摘要:
BZOJ4976: [Lydsy1708月赛]宝石镶嵌 https://lydsy.com/JudgeOnline/problem.php?id=4976 分析: 本来是从$k\le 100$这里入手,想了想还是不能列出一个和$k$有关的式子。 看到$n$有点大了,当$n k log$的时候显然能全 阅读全文
摘要:
BZOJ5362: [Lydsy1805月赛]quailty 算法 https://lydsy.com/JudgeOnline/problem.php?id=5362 分析: 题意即求一个最小基环树森林,两点之间边权为异或值。 这题的思路很好,先排序,我们二进制分组,将$0$和$1$分成两部分,显然 阅读全文
摘要:
一道模拟赛题 简要题意: 树,单点修改,求直径,求必须选$x$的最长链,卡空间。 分析: 我们先把必须选的那个丢掉,发现他实际上是单点修改$inf$然后查树的直径。 如果不卡空间的话我们可以用点分树来搞一搞,不过由于一次修改会影响到很多点不能用堆来维护只能用支持区间修改的线段树,这样空间就开不下了。 阅读全文
摘要:
Codechef Union on Tree https://www.codechef.com/problems/BTREE 简要题意: 给你一棵树,$Q$次询问,每次给出一个点集和每个点的$r_i$,每个点可以覆盖距离小于等于$r_i$的点。 问有多少点会被覆盖。 分析: 建出虚树,然后我们做两边 阅读全文
摘要:
BZOJ3435: [Wc2014]紫荆花之恋 https://lydsy.com/JudgeOnline/problem.php?id=3435 分析: 如果不强制在线,可以将树存下来用点分树来查询和修改。 即$dis(i,j) R_j\le R_i$,是个使用点分树维护的经典问题。 如果每次直接 阅读全文
摘要:
BZOJ3924: [Zjoi2015]幻想乡战略游戏 分析: 首先有一个很棒的思路,就是在点分树上跳重心,每次向答案最小的子分治中心移动。 这个是对的,因为树上带权重心往旁边的点走答案一定更差。 只需要每次能够$O(logn)$查询即可,维护点分树上子树$dist\times d$的和。 时间 阅读全文
摘要:
BZOJ4372: 烁烁的游戏 https://lydsy.com/JudgeOnline/problem.php?id=4372 分析: 不是很难想的一道题,用树状数组维护点分树上每一层分治中心的点分序即可。 代码: cpp include include include include usin 阅读全文
摘要:
BZOJ3730: 震波 https://lydsy.com/JudgeOnline/problem.php?id=3730 分析: 对于点分树上的每个点$x$,维护子树所有点到$x$的距离和到点分树上$fa[x]$的距离 。 查询时查询$x$在点分树上到根的一条链,容斥计算答案。 然后因为有修改我 阅读全文
摘要:
BZOJ4317: Atm的树+2051+2117 https://lydsy.com/JudgeOnline/problem.php?id=4317 分析: 二分答案之后就变成震波那道题了。 冷静一下可以发现,这题没有修改,直接维护一个有序表每次二分就完事了。 代码: 阅读全文