博客
关于我
【牛客】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/

你可能感兴趣的文章
Python 中的 threading 模块和 multiprocessing 模块有何区别?
查看>>
Python 中的 threading 模块和 multiprocessing 模块有何区别?
查看>>
Python 中的 Turtle 库详解
查看>>
Python 中的 __slots__ 属性有什么作用?
查看>>
Python 中的... 三点、箭头(->)、/ 分别的作用
查看>>
python读取json数据的id_python处理JSON数据
查看>>
Python 中的Duck Typing
查看>>
Python 中的for in 遍历生成字典、添加判断条件if
查看>>
Python 中的Lock与RLock
查看>>
Python 中的range(),arange()函数
查看>>
Python 中的内存管理机制
查看>>
Python 中的函数包装器:模型运行时和调试
查看>>
Python 中的列表理解和 lambda
查看>>
Python 中的多层for in嵌套循环使用
查看>>
Python 中的多线程(01/4)
查看>>
Python 中的多进程(01/2):简介
查看>>
Python 中的多进程(02/2):进程之间的通信)
查看>>
Python 中的字符串、列表、元组和字典数据类型的特点和使用场景
查看>>
Python 中的属性访问器是什么?如何使用 @property 装饰器?
查看>>
Python 中的带宽限制
查看>>