博客
关于我
【牛客】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中信号处理程序和atexit处理程序的调用
查看>>
Python中关于txt的简单读写模式与操作
查看>>
Python中关于类和函数的初体验之"__init__"和"__str__"不是"_init_"和"_str_"
查看>>
python中函数接受参数为*args, **kwargs怎么办
查看>>
Python中切片的高效迭代
查看>>
python中列表乘法、eval、lambda、hasattr、assert、*(星)等的用法
查看>>
Python中制作词云的WordCloud参数详解
查看>>
Python中可用和使用的系统内存?
查看>>
python中存根文件(.pyi)的用途是什么?
查看>>
Python中实现ASCII码与字符相互转换
查看>>
Python中实现获取所有微信好友的头像并拼接成一张图片
查看>>
Python中对象的布尔值
查看>>
python中对集合的操作
查看>>
python中将列表转换为元组的时间复杂度,反之亦然
查看>>
Python中布尔表达式的求值
查看>>
python中很常用的10个内置函数整理(初学必备)
查看>>
python中打印二维列表数据
查看>>
python中打散数组shuffle
查看>>
Python中执行外部命令
查看>>
Python中拼接numpy数组-ChatGPT4o作答
查看>>