典型的貪心,最優裝載問題。
每個噴水口最大覆蓋長度為:2*sqrt(a[i]*a[i]-1把噴水口半徑從大到小排列,從最大的開始取就可以。
注意:半徑1以及以下的噴水裝置不能覆蓋長度。但題目中說每個噴水裝置的效果都會讓以它為中心的半徑為實數ri(的圓被濕潤,不考慮r<1的情況
/*2015-7-30 21:24:11
貪心。乙個圓能覆蓋的區間長度為: len = 2*sqrt(r*r-1*1)
*/
nyoj——6**如下(已ac)#include#include#includeusing namespace std;
bool cmp(double a,double b)//bool為布林型,只有乙個位元組,取值false和true,是0和1的區別通常用來儲存關係表示式或者邏輯表示式的結果
double l(double r)
int main()
printf("%d\n",i+1); //i從0開始的 結果i+1 若從1開始 結果直接輸出i
}return 0;
}
考慮r<1的情況時 **如下
#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個噴水裝...
nyoj 6 噴水裝置(一) 貪心
記憶體限制 64mb 時間限制 3000ms special judge no accepted 13 submit 15 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0第一行m表示有m組測試資料 每一組測試資料...