四叶草魔杖
这道题目作为枚举子集的题目见识一下
首先对于一个连通块,如果点权之和为
我们看一下数据范围,可能是考状态压缩
我们把状态
显然不是,所以考虑方向不是考虑只加入一个点。由于我们要求连通块点权之和为
当然如果用刷表法的话就不用枚举子集了
update 2024.7.24
先看数据范围,考虑状态压缩,不难设出状态
然后考虑转移,尝试枚举每一条边,然而发现这样的话还要考虑每一条边传递的能量是多少,这显然无法承受,于是去考虑其他转移,这个时候就要读懂题目,题目说传递任何数量的能量的花费都一样,这就告诉我们如果一个连通块的权值和为
这个时候也许会想,按照Kruscal的过程求出若干个权值和为
所以这个时候就要重新考虑状态压缩,按照一个连通块一个连通块地考虑,将当前状态提取出若干个点作为一个连通块,然后求出这个连通块的MST(没有的话设置为无穷大)进行转移即可
update 2024.9.5
这道题目也是DP题目子特征的一个体现,我们枚举
这个集合的总和为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构