時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3 描述
現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri(0
輸入
第一行m表示有m組測試資料
每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝置,隨後的一行,有n個實數ri,ri表示該噴水裝置能覆蓋的圓的半徑。
輸出輸出所用裝置的個數
樣例輸入
2樣例輸出52 3.2 4 4.5 6
101 2 3 1 2 1.2 3 1.1 1 2
2題目大意: 在長為20公尺,寬為2公尺的草坪中心線上(注意是中心線)放置半徑為ri的噴水裝置。5
求滿足草坪全部濕潤的情況下(覆蓋的長度》=20),最少使用多少噴水裝置。
剛接觸時自己沒看懂題意不知道怎麼做,現在發現其實就是乙個很簡單的貪心問題,貪心問題一般先排序。
每個噴水裝置覆蓋的範圍如圖:
情況一:半徑<=1的噴水裝置覆蓋的長度為0,半徑<=1的噴水裝置應該摒棄。
情況二:噴水裝置的覆蓋範圍為 = 2*x = 2*sqrt(r*r-1);
ac**如下:
#include#include#include#includeusing namespace std;
int cmp(double a,double b)
double f(double r) //求出每個噴水裝置覆蓋的長度
int main()
sort(a,a+k,cmp); //快排,將噴水裝置的覆蓋長度,由大到小排序
for(i=0,sum=0.0; i=20.0)
}printf("%d\n",i+1);
} return 0;
}
NYOJ 6 噴水裝置(一)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...
NYOJ 6 噴水裝置(一)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝置...
nyoj6 噴水裝置(一)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...