luogu P1325 雷達安裝

2022-02-28 02:36:37 字數 986 閱讀 5770

描述:

假設海岸線是一條無限延伸的直線。它的一側是陸地,另一側是海洋。每一座小島是在海面上的乙個點。雷達必須安裝在陸地上(包括海岸線),並且每個雷達都有相同的掃瞄範圍d。你的任務是建立盡量少的雷達站,使所有小島都在掃瞄範圍之內。

資料使用笛卡爾座標系,定義海岸線為x軸。在x軸上方為海洋,下方為陸地。

樣例1如圖所示

輸入格式:

第一行包括2個整數n和d,n是島嶼數目,d是雷達掃瞄範圍。

接下來n行為島嶼座標。

輸出格式:

乙個整數表示最少需要的雷達數目,若不可能覆蓋所有島嶼,輸出「-1」。

輸入樣例#1:

3 2

1 2-3 1

2 1

輸出樣例#1:

2
貪心,把問題轉化成島嶼覆蓋的區域必須有雷達,之後類似於活動安排問題

#include#include

#include

#include

using

namespace

std;

#define n 1005

intn,d;

struct

island

is[n];

struct

miku

}cd[n];

double calc(double

x)bool

vis[n];

intmain()

}for(int i=1;i<=n;i++)

sort(cd+1,cd+n+1

);

int ans=0

;

for(int i=1;i<=n;i++)

ans++;}}

cout

return0;

}

P1325 雷達安裝

描述 假設海岸線是一條無限延伸的直線。它的一側是陸地,另一側是海洋。每一座小島是在海面上的乙個點。雷達必須安裝在陸地上 包括海岸線 並且每個雷達都有相同的掃瞄範圍d。你的任務是建立盡量少的雷達站,使所有小島都在掃瞄範圍之內。資料使用笛卡爾座標系,定義海岸線為x軸。在x軸上方為海洋,下方為陸地。樣例1...

YBTOJ Luogu P1325 雷達安裝

有 n 個點,第 i 個點的座標是 x i,y i 現在要你在 x 軸上標記若干個位置,使得每個點都能被乙個以被標記位置為圓心,半徑為 d 的圓覆蓋。求最少標記多少位置。首先任意一點如果的 y 座標如果大於 d 那麼肯定覆蓋不到,直接輸出 1。接下來考慮用貪心求解這個問題。容易發現,點 i 要被覆蓋...

雷達安裝(貪心)

題目描述 假定海岸線是一條無限延伸的直線,陸地在海岸線的一邊,大海在另一側。海中有許多島嶼,每乙個小島我們可以認為是乙個點。現在要在海岸線上安裝雷達,雷達的覆蓋範圍是d,也就是說大海中乙個小島能被安裝的雷達覆蓋,那麼它們之間的距離最大為d。我們使用平面直角座標系,定義海岸線是x軸,大海在x軸上方,陸...