博客
关于我
【牛客】G Applese 的毒气炸弹(最小生成树)
阅读量:397 次
发布时间:2019-03-05

本文共 378 字,大约阅读时间需要 1 分钟。

Applese 想要配出毒气炸弹,就需要使 S 中含有 1 ~ k 这 k 种元素。它想知道自己最少花费多少脑力可以把毒气炸弹做出来。这个问题可以通过图论中的最小生成树问题来解决。

首先,我们需要将每个试剂类型归类到 k 种元素中。然后,构建一个图,其中顶点是 k 种元素,边是根据给定的 m 条规则连接的。每条规则对应一条边,边的权重是所需的脑力消耗。

接下来,我们需要加入同种元素之间的零成本边,因为可以将任意两瓶相同元素的试剂混合而不需要消耗脑力。这样,当需要连接不同元素时,就需要使用给定的规则,并支付对应的成本。

然后,我们可以使用Kruskal算法或Prim算法来计算图的最小生成树的总权重。如果生成的最小生成树包含所有 k 个元素,则输出总权重;否则,输出 -1。

通过这种方法,我们可以找到将毒气炸弹做出来所需的最小脑力消耗。

最终答案:2

转载地址:http://hwrwz.baihongyu.com/

你可能感兴趣的文章
Pytorch Tensor 维度操作的形象理解 Tensor.unsqueeze() Tensor.squeeze()
查看>>
PyMySQL库对Mysql数据库进行增删改查与工具类封装
查看>>
pynput的基本介绍和使用
查看>>
pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器
查看>>
PyPI 存储库中的 JarkaStealer:深入解析与防范措施
查看>>
Pyplot tutorial,Pyplot官方教程自翻译
查看>>
PyQ5学习笔记——使用内部槽函数关闭窗口
查看>>
PyQ5学习笔记——使用自定义槽函数关闭窗口
查看>>
PyQt MimeData 文件名
查看>>
PyQt QML Material Design 按钮背景不会改变
查看>>
PyQt QString转成python stirng
查看>>
PyQt QToolButton在焦点时不更新图标
查看>>
PyQt 正确使用 emit() 和 pyqtSignal()
查看>>
PyQT-将文件复制到剪贴板
查看>>
PYQT.如何在QTableView中插入小部件
查看>>
PyQt4 代码在 PyQt5 (QHeaderView) 上不起作用
查看>>
PyQt4 到 PyQt5 ->mainFrame() 已弃用,需要修复才能加载网页
查看>>
PyQt4, class:mouseButtons用法
查看>>
PyQt4参考文档
查看>>
PyTorch Lightning:通过分布式训练扩展深度学习工作流
查看>>