开发者社区> 问答> 正文

遇到一个求边权和的问题,求解答。

现在有 n 个点 (1<=n<=1000),每个点都有一个值称为点权 ai(ai 为偶数,1<=ai<=1000),现在可以将任意两个点相连,连起来以后这条边也有一个值称为边权,这个边的边权为这两个点的点权之和的一半。现在需要你添加 n-1 条边,问将这 n 个点连通以后 ( 连通是指任意两个点都能互相到达 ) 的最大的边权和是多少 ? 输入点的数量 n;和 n 个数,表示点权的值,输出最大的边权和.

展开
收起
游客4skzfvnrxrzbi 2021-12-23 15:40:34 499 0
1 条回答
写回答
取消 提交回答
  • 根据题意可知,最终需要将 n 个点连通并达到最大边权,而边权为两个点的点权之和 的一半,所以一个点加入连通图的最大边权就是和点权最大的点连通。因此想要得到最大边权和,只要所有点都与点权最大的点相连即可。实现过程中,首先求出最大的点权,然后计算出其他点与这个权值最大的点的边权之和即可。 则输入:5 [2,4,6,8,10]
    输出:30。

    2021-12-23 18:16:09
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载