uva 10382 貪心 區間覆蓋問題

2021-07-22 02:38:20 字數 555 閱讀 5543

#include"stdio.h"

#include"cmath"

#include"algorithm"

#include"iostream"

using namespace std;

struct sgm

}a[10000+500];

int main()

sort(a,a+cnt);

if(cnt==0||a[0].l>0)

}a[10000+500];

int main()

sort(a,a+cnt);

if(cnt==0||a[0].l>0)

if(j==i) break; //當上面的迴圈無法進行的時候說明已經沒有邊可以加入了

i=j; //下一次列舉時候從 剛加入的那條邊之後的邊 開始列舉

left=right; //更新起點

ans++; //更新一次相當於向區間加入一條邊

if(right==l) break; //當覆蓋區域達到l退出迴圈

}if(right==l) cout<

UVA 10382 (區間貪心)

注意每個圓管轄的區間不是最左或最右的端點而是和被覆蓋圖形的交點。直接按照每個圓的left排序 每次盡量尋找靠右的就可以了。include include include include include include include include include include include i...

uva 10382題解(貪心)

題目大意 有一塊草坪,長為l,寬為w,在它的水平中心線上有n個位置可以安裝噴水裝置,各個位置上的噴水裝置的覆蓋範圍為以它們自己的半徑ri為圓。求出最少需要的噴水裝置個數。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 ...

UVA 10382 貪心 最少圓

題目 給你一塊草地,有長,寬,給你n個噴頭,每個噴頭給出中心和噴灑範圍。求覆蓋這片草地的最小碰頭數量。思路 這是經典的貪心題,從左到右,把所有噴頭排序,現在第乙個噴頭的最右邊距離為right,找到剩下噴頭中噴頭能覆蓋right的,且噴頭右邊的距離最大的噴頭,然後更新最右邊的距離right。這裡注意計...