YbtOJ高效高階 貪心 2 雷達裝置

2021-10-13 18:11:10 字數 1372 閱讀 7526

ybtoj高效高階 貪心-2

有n

nn個建築物,第i

ii個建築物在笛卡爾座標系上的座標為(xi

,yi)

(x_i, y_i)

(xi​,y

i​) ,你需要在x

xx軸上安裝一些雷達,每個雷達的偵察半徑均為d

dd ,要求每個建築物都至少被乙個雷達偵測到,求最少要安裝幾個雷達。

3 2

1 2-3 1

2 1

2
每個點所在的圓的圓心x

xx座標的範圍為

x −d

2−y2

∼x+d

2−y2

x - \sqrt \sim x + \sqrt

x−d2−y

2​∼x

+d2−

y2​那麼題目就轉化為了乙個數軸上有若干個區間,現在要新增最少的點,使得每個區間都含有乙個點

那我們把每個區間的右端點排序,然後對於每個區間看看是否有交集,然後決定是否要新增新點即可

#include

#include

#include

#include

#include

using

namespace std;

int n, d, ans;

double x[

1005

], y[

1005];

struct ww

a[10005];

bool

cmp(ww a, ww b)

intmain()

}for

(int i =

1; i <= n;

++i)

a[i]

.l = x[i]

-sqrt

(1ll

* d * d -

1ll* y[i]

* y[i]),

a[i]

.r = x[i]

+sqrt

(1ll

* d * d -

1ll* y[i]

* y[i]);

sort

(a +

1, a + n +

1, cmp)

;double now = a[1]

.r;int t =1;

for(

int i =

2; i <= n;

++i)

ans++

;printf

("%d"

, ans)

;return0;

}

YbtOJ高效高階 貪心 3 畜欄預定

ybtoj高效高階 貪心 3 有n頭牛在畜欄中吃草。每個畜欄在同一時間段只能提供給一頭牛吃草,所以可能會需要多個畜欄,給出第i頭牛開始吃草的時間區間 ai bi a i,b i ai b i 求需要的最少畜欄數和每頭牛對應的畜欄方案。5 1 10 2 43 6 5 84 7412 324對每頭牛的開...

YbtOJ高效高階 廣搜 2 山峰和山谷

ybtoj高效高階 廣搜 2 給定乙個 n n 的網格狀地圖,每個方格 i,j 有乙個高度 wi,jw wi,j 如果兩個方格有公共頂點,則它們是相鄰的。定義山峰山谷如下 均由地圖上的乙個聯通塊組成。所有方格高度都相同。周圍的方格 即不屬於山峰或山谷但與山峰或山谷相鄰的格仔 高度均大於山谷的高度,或...

YbtOJ高效高階 雜湊 2 回文子串

ybtoj高效高階 雜湊 2 如果乙個字串正著讀和倒著讀是一樣的,則稱它是回文的。給定乙個長度為 n的字串s,求他的最長回文子串的長度是多少。abcbabcbabcba abacacbaaaab endcase 1 13 case 2 6正反兩遍求出hash值,然後列舉點向兩邊二分求出最大長度 in...