博客
关于我
【牛客】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:函数使用
查看>>
Python:函数进阶
查看>>
Python:在整数的二进制表示中查找最长的二进制间隙
查看>>
Python:如何从二进制转换为 base 64 并返回?
查看>>
Python:如何以非阻塞方式读取子进程的标准输出
查看>>
Python:如何使用 plotly 制作阴影区域或交替背景颜色?
查看>>
Python:如何根据日期时间获取值的计数
查看>>
python:如何检测串行 COM 上的设备名称/ID
查看>>
Python:如何模拟 datetime.utcnow()?
查看>>
Python:如果DataFrames之间的其他值匹配,则对DataFrame中的值求和
查看>>
Python:字典思维
查看>>
Python:将 HEX 字符串转换为字节
查看>>
Python:将列表与范围列表合并
查看>>
Python:将列表列表初始化为一定大小,
查看>>
Python:带有生成器的给定集合的幂集
查看>>
Python:按字符的位置拆分字符串
查看>>
Python:替换嵌套字典中的值
查看>>
Python:爬取数据出现response.status_code为403解决方法
查看>>
Python:爬取数据出现response.status_code为418解决方法
查看>>
Python:生成“元组集“;来自“元组列表“;不考虑顺序
查看>>