博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[CF#250 Div.2 D]The Child and Zoo(并查集)
阅读量:5277 次
发布时间:2019-06-14

本文共 374 字,大约阅读时间需要 1 分钟。

题目:http://codeforces.com/problemset/problem/437/D

题意:有n个点,m条边的无向图,保证所有点都能互通,n,m<=10^5

每个点都有权值,每条边的权值定义为这条边连接两点的权值中的最小值。

f(p,q)表示p到q的路径中边权的最小值,如果有多条路经,就取每条路径最小值中的最小值

要求的就是对于所有1<=p<=n,1<=q<=n,p≠q,f(p,q)的平均值

分析:

刚开始是想考虑每条边对总和的贡献,结果没想通。

一个很巧的办法就是贪心的想法,将所有的边按照从大到小排序,然后加入图中,类似Kruskal算法,易得每次加的边对总和的贡献就是2*两个区域节点数的乘积。这个用带权并查集弄一下就行。

转载于:https://www.cnblogs.com/wmrv587/p/4319524.html

你可能感兴趣的文章
推荐一款UI设计软件Balsamiq Mockups
查看>>
Linux crontab 命令格式与详细例子
查看>>
百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
查看>>
游标使用
查看>>
LLBL Gen Pro 设计器使用指南
查看>>
SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
查看>>
Android 设置界面的圆角选项
查看>>
百度地图api服务端根据经纬度得到地址
查看>>
CSS中隐藏内容的3种方法及属性值
查看>>
每天一个linux命令(1):ls命令
查看>>
根据xml生成相应的对象类
查看>>
查看ASP.NET : ViewState
查看>>
Android StageFrightMediaScanner源码解析
查看>>
vue项目中开启Eslint碰到的一些问题及其规范
查看>>
循环队列实现
查看>>
CSS层模型
查看>>
springBoot 项目 jar/war打包 并运行
查看>>
HDU 1501 Zipper
查看>>
打包java程序生成exe
查看>>
八叉树
查看>>