題目 (vector+pair寫法)
結構體陣列
#include#include#include#include#include#include#includeusing namespace std;/*3
8 20 2
5 34 1
1 27 2
10 2
13 3
16 2
19 4
3 10 1
3 59 3
6 13 10 1
5 31 1
9 1*/
struct data
sh[99999];
bool cmp(data d1, data d2)//比較器
int main()
n = i; //去掉半徑小於w/2後的剩餘裝置
sort(sh, sh + n, cmp); //左端點遞增排序
double long=0;//右端已經噴水的距離
int flag = 1;
i = 0;
int c = 0;
while (i < n)
if (long >= l) //已經完全覆蓋,停止計數
double max = -1;
while (i < n && sh[i].a <= long) //在左端點不超過當前已覆蓋的範圍,選取右端點最大的
long = max;
c++;
} if (flag == 0 && long < l)
cout << "-1" << endl;
else
cout << c << endl;
} return 0;
}
噴水裝置(一)(貪心)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...
噴水裝置(一) 貪心
描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝置,隨後的一行,有n個實數ri,ri表示該噴水裝置能覆蓋的圓的半徑...
NYOJ 噴水裝置(一) (貪心)
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...