【HNOI 模拟】Dual-Sim Phone
2015-08-28 10:09
316 查看
题目大意
给出一幅nn个点mm条边的带权有向图,要求从中选出两个点,记为11和22,使得这两个点的出边终点集合大小恰好为nn,而某个点的费用为11到它边权和22到它的边权中较小值,求出费用最小值。分析
题目意思就是找两个点,它们走一步能到所有的点,某个点的费用为两个点到它边权的较小值(没边可视为权值正无穷)。考虑和所有点关联最少的点,它的度数最多为mn\frac{m}{n},而选出的点至少有一个来自它的邻接点集合。枚举之,枚举另外一个点,线性扫描这两个点的出边,判断即可。
考虑时间复杂度O(mn∑idegi)=O(m2n)O(\frac{m}{n}\sum_i deg_i)=O(\frac{m^2}{n}),似乎nn较小时过不了。
然而mn\frac{m}{n}那部分顶多为nn,于是原时间复杂度变为O(max(mn,n)⋅m)O(max(\frac{m}{n},n)\cdot m),当n=m−−√n=\sqrt m时有最值O(mm−−√)O(m\sqrt m)
相关文章推荐
- ios键盘类型设置
- 支付宝接口使用文档说明 支付宝异步通知(notify_url)与return_url. .
- 8 种提升 ASP.NET Web API 性能的方法
- Android界面布局学习总结
- const解析
- java及java web学习笔记
- thinkphp实现导航高亮的简单方法
- 关于保利威视平台的API调用签名
- hdu5050 Divided Land(二进制最大公约数+java强大的读写功能)
- 常见编译问题解决方法集
- 支付宝接口使用说明
- 0005 手动定制原版 Win7 操作系统(四)
- 卡脆TV是什么软件
- jquery实现的用户注册表单提示操作效果代码分享
- 让iosApp应用只支持横屏
- 项目中区分iphone和ipad一级屏幕的方向
- [Android]简单的在线翻译应用
- 运算符重载和友元函数
- tips
- win10的应用保存位置怎么修改?