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...