《算法竞赛进阶指南》0x6B T6 四叶草魔杖

本文介绍了如何解决一个宝石能量平衡的问题,其中宝石间可以通过能量传递达到能量相同,但需要支付代价。通过最小生成树算法和状态压缩,以及背包DP,寻找使所有宝石能量相同所需的最小代价。文章提供了数据范围和输入输出样例,并展示了问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目传送门

题目描述

魔杖护法 Freda 融合了四件武器,于是魔杖顶端缓缓地生出了一棵四叶草,四片叶子幻发着淡淡的七色光。

圣剑护法 rainbow 取出了一个圆盘,圆盘上镶嵌着 N N N 颗宝石,编号为 0 ∼ N − 1 0∼N−1 0N1

第 i 颗宝石的能量是 Ai。

如果 A i > 0 A_i>0 Ai>0,表示这颗宝石能量过高,需要把 A i A_i Ai 的能量传给其它宝石;如果 A i < 0 A_i<0 Ai<0,表示这颗宝石的能量过低,需要从其它宝石处获取 − A i −A_i Ai 的能量。

保证 ∑ A i = 0 ∑A_i=0 Ai=0

只有当所有宝石的能量均相同时,把四叶草魔杖插入圆盘中央,才能开启超自然之界的通道。

不过,只有 M M M 对宝石之间可以互相传递能量,其中第 i i i 对宝石之间无论传递多少能量,都要花费 T i T_i Ti 的代价。

探险队员们想知道,最少需要花费多少代价才能使所有宝石的能量都相同?

输入格式

第一行两个整数 N 、 M N、M N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值