南陽ACM 噴水裝置(二)

2021-08-04 07:37:31 字數 1165 閱讀 7841

題目:

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4 描述

有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n(n<=10000)個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪全部潤濕。

輸入第一行輸入乙個正整數n表示共有n次測試資料。

每一組測試資料的第一行有三個整數n,w,h,n表示共有n個噴水裝置,w表示草坪的橫向長度,h表示草坪的縱向長度。

隨後的n行,都有兩個整數xi和ri,xi表示第i個噴水裝置的的橫座標(最左邊為0),ri表示該噴水裝置能覆蓋的圓的半徑。

輸出每組測試資料輸出乙個正整數,表示共需要多少個噴水裝置,每個輸出單獨佔一行。

如果不存在一種能夠把整個草坪濕潤的方案,請輸出0。

樣例輸入

2

2 8 6

1 14 5

2 10 6

4 56 5

樣例輸出

1
個人理解:需要注意的就是圓圈裡必須套個方框這個圓才是可以用的 先選大圈 貪心演算法

ac情況:

** c語言:

# include # include # define n 1000  

typedef double elem;

# define max(a,b) (a)>(b)?(a):(b)

void kuaipai(elem a[n],int left,int right);//快速排序 自身實現

void change(elem *a,elem *b)//交換函式

double ps[2][n],d,hw,h,max,sum;

int t,num,w,h,i,j,x,r;

int main()

} sum=num=0;//每次初始化為0

kuaipai(ps,0,j-1);//對符合條件的裝置 下標[0,j-1]

while(sum=right) return;//如果重合

while(i!=j)

{ while(a[0][j]>=temp && i

南陽理工ACM 噴水裝置 一

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...

南陽理工ACM 12題 噴水裝置(二)

噴水裝置 二 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個...

南陽 12 噴水裝置 2

區間選點中的區間完全覆蓋問題 求解思路如下。1 先根據給出的點的座標和半徑取出其能覆蓋的線段範圍 假如區間長度8,可選的覆蓋線段 2,6 1,4 3,6 3,7 6,8 2,4 3,5 2將每乙個區間按照左端點遞增順序排列,拍完序後為 1,4 2,4 2,6 3,5 3,6 3,7 6,8 3設定乙...