噴水裝置(一)
時間限制: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人所需要的時間已知 而如果兩人...