【题解】Solution Set - NOIP2024集训Day13 点分治、点分树
【题解】Solution Set - NOIP2024集训Day13 点分治、点分树
https://www.becoder.com.cn/contest/5476
「COCI 2018/2019」Deblo
看到异或就想到拆位。对于第
如果
「Hdu6643」Ridiculous Netizens
看到乘积,想到根号分治。
对于当前新加入的点的权值
如果:
,那么 ,我们只需要记录乘积小于 的那部分。 ,那么对于每一个这样的 我们可以知道最大满足和她相乘小于等于 的值,而这样的值最多有 个,所以直接存起来就好了。
Motivation:选取关键点 dp,减小时空。
跑一遍乘积和小于等于
或者转化到 dfn 序上 dp,具体可以参见:https://blog.csdn.net/Emm_Titan/article/details/121255055
「ZJOI2015」幻想乡战略游戏
题意:求带权重心。支持动态修改权值。
考虑单个询问怎么做。
先随机走到一个点
那么我们用
(实际上一般的不带权的树重心也是这样推的。
显然我们不会走回头路,所以一旦我们往一个儿子走了,其她的儿子都没用了。
所以一旦走到一个儿子又是一个子问题
可以发现,答案的决策和边权并没有关系,也就是跟树的形态没有关系。
所以我们可以直接点分树。
但是我们不能像暴力那样直接算走过一条边之后答案的变化量,因为现在是走过的一条链,而链上面还要很多点,没法直接算贡献。
然后不会了。
好吧,正常的点分树就和度数有关了……因为题目保证了度数小于等于
每次算答案的话其实是一个点分树的典问题(【模板】点分树 | 震波 这应该算是加强版了),就是维护两个东西:
子树中所有 对 的贡献; 子树中所有 对 的父亲(点分树上)的贡献。
听说可以通过三度化,然后整个算法跟度数无关?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话