ny 47 噴水裝置(一)

2022-09-01 07:21:10 字數 1415 閱讀 6672

噴水裝置(一)

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:3

描述

現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri(0輸入

第一行m表示有m組測試資料

每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝置,隨後的一行,有n個實數ri,ri表示該噴水裝置能覆蓋的圓的半徑。

輸出

輸出所用裝置的個數

樣例輸入25

2 3.2 4 4.5 6

101 2 3 1 2 1.2 3 1.1 1 2

樣例輸出25

**

[苗棟棟]原創

解題思路:

1、  先把噴水裝置按照半徑的大小排序。

2、  然後判斷半徑的大小與草坪的寬。

3、  算噴水裝置能覆蓋的長度  半徑的平方-寬一般的平方  的平方根乘以2.

4、  判斷總長度與草坪的長度即可。

程式**:

#include

#include

#include

#include

double a[660];

int cmp(const void *a,const void *b)

return *(double*)b>*(double*)a?1:-1;        //排序時應注意 時double 型  所以返回值要是 1  或者 -1

int main()

int t,n,i,len,w,s;

double j;

scanf("%d",&t);

while(t--)

len=20;

w=2;

scanf("%d",&n);

for(i=0;iscanf("%lf",&a[i]);             //注意輸入格式

qsort(a,n,sizeof(a[0]),cmp);

j=0;

s=0;

//for(i=0;i//printf("%g ",a[i]);

//printf("\n");

for(i=0;ij=j+2*(sqrt(a[i]*a[i]-1));                   //  噴水裝置能覆蓋的長度

if(j<=len)

s++;                        //  彭水裝置的個數。

else

break;

printf("%d\n",s+1);

return 0;

ny47 過河問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述輸入 第一行是乙個整數t 1 t 20 表示測試資料的組數 每組測試資料的第一行是乙個整數n 1 n 1000 表示共有n個人要過河 每組測試資料的第二行是n個整數si,表示此人過河所需要花時間。0 輸出輸出所有人都過河需要用的最...

NY 47 過河問題 貪心

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...

貪心 過河問題(數學思想) ny 47過河

時間限制 1000 ms 記憶體限制 65535 kb 難度 5描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩人...