時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3 描述
現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri(0
輸入
第一行m表示有m組測試資料
每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝置,隨後的一行,有n個實數ri,ri表示該噴水裝置能覆蓋的圓的半徑。
輸出輸出所用裝置的個數
樣例輸入
252 3.2 4 4.5 6
101 2 3 1 2 1.2 3 1.1 1 2
樣例輸出
2
思路:其實只要算出 這個草地的斜邊長度, 然後只要全部圓的半徑合大於等於這個斜邊長度的一半就可以了
(但是必須丟棄半徑小於等於1的裝置,在橫中線上無論怎麼放,它是無法完全覆蓋草地的)。
x = sqrt(r*r-(h/2)*(h/2)), 這樣半徑為r的圓能夠覆蓋的長度為2x,
剩下w-2x, 這樣遍歷下去, 當w<=0時,就滿足了。
r=sqrt(x*x+h*h) / 2
總的r = sqrt(w*w+h*h) / 2
簡化一下,就是求全部圓的半徑(小於等於1的不算)合大於等於這個斜邊長度的一半。
**:#include
#include
#include
using
namespace
std;
bool
cmp(
doublea,
doubleb)
intmain
()sort(a
,a+n
,cmp
);while(l
>0)
printf
("%d\n"
,ans);}
return0;
}
NYOJ 噴水裝置(一)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0苗棟棟 簡單貪心 include include includeusing namespace ...
NYOJ 噴水裝置(二)
描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。輸入第一行輸入乙個正整數n表示共有n次測試資料。每一組測試資料的第...
NYOJ 噴水裝置(一)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...