路由器安置 Routing

2021-06-28 19:52:10 字數 475 閱讀 5917

一條街道安裝無線網路,需要放置m個路由器。整條街道上一共有n戶居民,分布在一條直線上,每一戶居民必須被至少一台路由器覆蓋到。現在的問題是所有路由器的覆蓋半徑是一樣的,我們希望用覆蓋半徑盡可能小的路由器來完成任務,因為這樣可以節省成本。(1 ≤ n, m ≤ 100000)

首先這種問題可以採用二分答案的方法. 嘗試當前路由器覆蓋範圍能否覆蓋所有居民點. 那麼這裡如果採用二分半徑的方法, 會出現實數, 所以採用 wxjlzbcd 的方法, 採用二分直徑, 最後實數折半輸出.

在嘗試答案可行性的時候, 為了快速查詢從當前居民點可以覆蓋到的最遠居民點, 再採用一次二分查詢 (upper_bound) 找到剛好覆蓋不到的乙個點, 也就是下乙個起點. 注意這裡的幾個變數的初值和邊界值需要好好考慮一下.

路由器安置(routing)Solution

首先看一下題面吧 問題描述 一條街道安裝無線網路,需要放置m個路由器。整條街道上一共有n戶居民,分布在一條直線上,每一戶居民必須被至少一台路由器覆蓋到。現在的問題是所有路由器的覆蓋半徑是一樣的,我們希望用覆蓋半徑盡可能小的路由器來完成任務,因為這樣可以節省成本。輸入資料 輸入檔案第一行包含兩個整數m...

upc 路由器安置

時間限制 1 sec 記憶體限制 128 mb 題目描述 一條街道安裝無線網路,需要放置m個路由器。整條街道上一共有n戶居民,分布在一條直線上,每一戶居民必須被至少一台路由器覆蓋到。現在的問題是所有路由器的覆蓋半徑是一樣的,我們希望用覆蓋半徑盡可能小的路由器來完成任務,因為這樣可以節省成本。輸入第一...

分治 路由器安置問題

題設 一條街道安裝無線網路,需要放置m個路由器。整條街道上一共有n戶居民,分布在一條直線上,每一戶居民必須被至少一台路由器覆蓋到。現在的問題是所有路由器的覆蓋半徑是一樣的,我們希望用覆蓋半徑盡可能小的路由器來完成任務,因為這樣可以節省成本。cover函式檢測該直徑是否足夠覆蓋該位址 upper bo...