【题解】Solution Set - NOIP2024集训Day55 图论杂题3
【题解】Solution Set - NOIP2024集训Day55 图论杂题3
https://www.becoder.com.cn/contest/5636
「ABC187E」Through Path
注意:无根树是无向边。
一个相当于子树加
3min
「HNOI 2018 省队集训 Day 5」party
一个结论是:题中的 party 一定是在这
注意到
(FAKE
我们先树剖 + bitset 拿到每个人可以拿到哪些特产。然后把每个人只有她可以拿的特产找出来,具体的这个就是其她几个人的 bitset 与起来,跟这个人异或,然后再跟自己与起来。
然后呢?
把所有人能拿到的特产的并集拿到,然后按可以被拿的人数从小到大依次贪心?好像也不对。
二分图?但是怎么判每个人拿的特产数相等?
23min
https://www.cnblogs.com/lcyfrog/p/13024371.html
因为
我们设每个人在答案中带来的特产数为
关于实现:
-
知道每个人可以拿到哪些特产有两个途径:(每次查询的时间复杂度为
-
主席树 + 树上差分:
;(查询整棵线段树是 不是 啊。 -
树剖 + bitset:
。一种对于树剖的常用两只
化单 的技巧。维护每个点到其重链顶间的数据,这样跳重链的时候可以
查询。只用最后
在同一重链上的时候,需要数据结构的一个 。所以,我们就把树剖和数据结构,在算时间复杂度时的乘法变成了加法。
实际上在做的时候,不如用
去换 。实现难度上其实差不多。 -
-
算邻域的时候,可以状压 dp 算,而不用每次都取枚举当前子集的每个元素的邻域再并起来。
「ZJOI2018」胖
一般图是不好优化这个过程的。考察题目给的:链 + 中心点 的结构。
我们对于每个
这个区间肯定是有单调性的,考虑去二分这个区间,看她最先不能越过哪个
另外一个点
(自己想整个过程的状态去了,绕了很多弯,其实只用着眼于二分的这个点。
我们需要
…… 20min
借鉴……
哦!稍微推个式子,wssb,差一点啊。
设
设当前枚举的
也就是
- 如果
在 左侧, 。 - 如果
在 右侧, 。
所以我们只需要用 st 表去维护
注意一下去重的问题。
如果一个点对两个
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话