博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
路由器安置(Routing)
阅读量:4987 次
发布时间:2019-06-12

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

描述

一条街道安装无线网络,需要放置M个路由器。整条街道上一共有N户居民,分布在一条直线上,每一户居民必须被至少一台路由器覆盖到。现在的问题是所有路由器的覆盖半径是一样的,我们希望用覆盖半径尽可能小的路由器来完成任务,因为这样可以节省成本。(1 ≤ N, M ≤ 100000)


分析

首先这种问题可以采用二分答案的方法. 尝试当前路由器覆盖范围能否覆盖所有居民点. 那么这里如果采用二分半径的方法, 会出现实数, 所以采用 wxjlzbcd 的方法, 采用二分直径, 最后实数折半输出.

在尝试答案可行性的时候, 为了快速查找从当前居民点可以覆盖到的最远居民点, 再采用一次二分查找 (upper_bound) 找到刚好覆盖不到的一个点, 也就是下一个起点. 注意这里的几个变量的初值和边界值需要好好考虑一下.


代码

转载于:https://www.cnblogs.com/wfwbz/p/4312304.html

你可能感兴趣的文章
说说Runnable与Callable
查看>>
ThreadLocal详解
查看>>
MVC中的Repository模式
查看>>
数据结构 排序(快速排序)
查看>>
java.util.Calendar常量字段值
查看>>
对DotNet分布式应用搭建的考虑
查看>>
scala 隐式详解(implicit关键字)
查看>>
红绿灯切换效果
查看>>
有一个人,她不会编程,但在计算机图像领域做出了卓越的贡献
查看>>
Maven第三篇【Maven术语、pom.xml介绍】
查看>>
Matlab三次样条法插值
查看>>
day_3:解析
查看>>
转 winfrom如何通过http来进行通信,并且通过传递json格式的数据可接受json格式的数据...
查看>>
发布一个生成按钮图片的工具 c#写的
查看>>
C语言的那些小秘密之变参函数的实现
查看>>
距离矢量路由协议(二)
查看>>
TCP与UDP区别
查看>>
error_logger 爆炸
查看>>
自动换行 word-break:break-all和word-wrap:break-word
查看>>
三列自适应等高且中列宽度自适
查看>>