【题解】Solution Set - NOIP2024集训Day47 最小生成树
【题解】Solution Set - NOIP2024集训Day47 最小生成树
https://www.becoder.com.cn/contest/5606
色
12min 没思路……
显然,可以证明的是最终的答案一定是一条边的长度。
(FAKE
考虑给这个无向图定向,如果我们能使每个点的出度平均,即
想不到怎么定向。
(我在想什么,定了向也没用啊,始终修改之后还是需要双向的维护。
https://www.cnblogs.com/AWhiteWall/p/12522740.html
其实,结论可以更进一步:这条边一定在 mst 上。
Why?
- 如果答案边不在 mst 上,那么在 mst 上的这两个点之间的路径总长度一定大于等于这条边权,这样我们不如断开这个路径上的一条边,而连上这条边,从而构造出一个更优的 mst,矛盾!
(然后自己突然有个神奇的想法。
我们不妨把询问离线下来,然后去枚举每一条边,这条边可以产生贡献当且仅当两个端点颜色不同。
我们不妨把所有的颜色修改放在每个节点上,然后统计答案就行了,总共的复杂度应该是
https://www.becoder.com.cn/submission/2646602
有问题!一个菊花图,并且每次都修改中间那个节点,就直接卡掉了。😥
(cube 提供了一个非常神秘的随机赋权+根号分治做法。
考虑将
考虑对每个块维护
我们就是找到第一个该值不为
考虑维护这个值。
我们先求出每个点分别在
「THUPC 2022 初赛」最小公倍树
做过,但是印象不多。
完全图,所以跟图的形态关系不大。
有直接倍数关系的可以直接忽略较大值。
能不能想办法继续缩小边的范围?
感觉跟调和级数有关系。
(FAKE
把所有因子跟其倍数连边,然后想办法让取 mst 的时候,实点
感觉怪怪的,有些虚点也不是必须要在 mst 上的,没前途的。
10min
其实远没有这么复杂。我们考虑去枚举这个
对于一个
这样边数就是调和级数
然后跑 kruskal 就行。
「CF1120D」Power Tree
做过,有印象。
看错题了,以为是给子树内所有点都
相当于一开始在每个叶子节点上面有一颗棋子,可以将棋子移动到她的祖先,要求最终权值和最小,并且移动路径不能有交。
从下往上考虑贪心,我们把子树中权值最大的棋子向上移动就行了。
https://www.becoder.com.cn/submission/2642715
只看第一问,这个暴力是对了(但是在这个随机数数据下,
考虑启发式合并优化这个过程。(似乎比 dsu on tree 好写一点。
https://www.becoder.com.cn/submission/2643216
注意:一个点被其祖先替换掉的时候,和这个点等价的那些点也要 tag=0
。
尽力了,但是方案并集输出真的好 ex,遂摆烂。
https://codeforces.com/problemset/submission/1120/285139296
(并集大小只多了一个元素!!!一组 Hack
最小生成树的做法。
https://www.luogu.com.cn/article/z692g8r0
区间加转化为连边,还是挺妙的。
还有就是注意最小生成树,方案并集的输出。
「HNOI2010」城市建设
https://www.luogu.com.cn/article/zxqeaowk
两个 trick 见题解吧。
「BZOJ4808」马
一眼二分图。
棋盘黑白染色,显然不存在在同一种颜色格子中的两个马能够互相吃到,所以连边求最大独立集就行了。
3min(实际上是真的一眼,但是打字太慢了。/kk
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
2023-10-08 【笔记】数学常用结论