【題目描述】
長 l公尺,寬 w公尺的草坪裡裝有 n個澆灌噴頭。每個噴頭都裝在草坪中心線上(離兩邊各 w/2公尺)。我們知道每個噴頭的位置(離草坪中心線左端的距離),以及它能覆蓋到的澆灌範圍。
如果要同時澆灌整塊草坪,最少需要開啟多少個噴頭?
【題目鏈結】
【演算法】
貪心——>區間覆蓋問題。注意,半徑小於w/2的噴頭直接跳過,不然會炸,不要問我是怎麼知道的。
【**】
1 #include 2using
namespace
std;
3int
t,n,l,w,tot;
4struct posp[15010];5
bool
operator
< (pos& a,pos& b)
6double calc(int r)
7int
main()
819 sort(p+1,p+tot+1
);20
double s=0.0;21
int j=1,ans=0
,rec;
22while(stot) else
break;25
if(rec) ans++,s=p[rec].e;
26else
break;27
}28if(s>=l) printf("
%d\n
",ans);
29else puts("-1"
);30}31
return0;
32 }
LOJ 10002 噴水裝置
題目大意 給定一段區間 l,r n 條線段,求至少用多少條線段能夠覆蓋整個區間,不能覆蓋輸出 1。題解 每次在起點小於當前位置的線段集合中選擇有端點最大的位置作為下乙個位置,並更新答案,如果當前位置無法被更新,輸出 1。比較坑的一點是,輸入資料會有 r w 的情況,需要對線段下標加以處理。如下 in...
Loj 10002 噴水裝置
description 長 l 公尺,寬 w 公尺的草坪裡裝有 n 個澆灌噴頭。每個噴頭都裝在草坪中心線上 離兩邊各 frac 公尺 我們知道每個噴頭的位置 離草坪中心線左端的距離 以及它能覆蓋到的澆灌範圍。請問 如果要同時澆灌整塊草坪,最少需要開啟多少個噴頭?solution 先預處理圓覆蓋矩形塊...
LOJ 10002 噴水裝置(貪心)
題目鏈結 題目描述 長 l公尺,寬 w 公尺的草坪裡裝有 n 個澆灌噴頭。每個噴頭都裝在草坪中心線上 離兩邊各 w 2 公尺 我們知道每個噴頭的位置 離草坪中心線左端的距離 以及它能覆蓋到的澆灌範圍。請問 如果要同時澆灌整塊草坪,最少需要開啟多少個噴頭?輸入格式 輸入包含若干組測試資料。第一行乙個整...