NOIP2024集训Day47 生成树+二分图
NOIP2024集训Day47 生成树+二分图
B. [THUPC2022 初赛] 最小公倍树
直接建边显然不行,考虑优化建边。
对于两个点
由于
这个建边的套路要记住。
C. [CF1120D] Power Tree
很巧妙的一种方法。
首先我们可以把叶子节点按 dfs 序抽象成一个序列,不妨设这个序列长
那么控制一棵子树内的叶子节点的点权等同于控制序列一段区间的点权。
全体置零的要求和区间加的操作容易联想到差分数组,不妨设差分数组
对于操作区间
对于要求全体置零,就可以看做是要求
发现每次操作后差分数组的总和不会变,所以为了达到要求,必须把所有的值转移到
对于操作区间
不难发现当且仅当两个点联通时,才能把一个点的
所以题目的要求就是所有的点都要和
那么这就是一个最小生成树能解决的事情了。
至于输出所有可能在最优方案中的点,也就是输出所有可能出现在最小生成树中的边,可以直接在 Kruskal 的过程中判断一下就好了。
H. [BZOJ4808] 马
首先将棋盘
由于要放最多的马,其实就是最大独立集(最大独立集 = 点数 - 最小点覆盖 = 点数 - 最大匹配)。
[l,r]:
本文作者:Leirt_Abu
本文链接:https://www.cnblogs.com/Leirt/p/18453119
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步