Sprinkler (1) Time Limit: 3000 MS | memory limit: 65535 kb difficulty: 3
-
Description
-
There is a lawn with a length of 20 meters and a width of 2 meters. A sprinkler with a radius of RI should be placed on the horizontal center, the effect of each sprinkler will make the circle with its center radius as the real number Ri (0 <RI <15) moist, there are plenty of sprinkler I (1 <I <600), and you will surely be able to wet all the lawns. What you need to do is: select as few sprinkler as possible, wet all the lawns.
-
Input
-
The first line M indicates that there are M groups of test data
The first line of each set of test data has an integer N, N indicates a total of N sprinkler devices, and the subsequent line has n real number Ri, RI indicates the radius of the circle covered by the sprinkler.
-
Output
-
Number of devices used for output
-
Sample Input
-
252 3.2 4 4.5 6 101 2 3 1 2 1.2 3 1.1 1 2
-
Sample output
-
25
-
Source
-
[Miao Dongdong] original
-
Uploaded
Miao Dongdong
The Code is as follows:
#include<stdio.h>#include<math.h> int main(){int t,n,i,j;double k,w,a[660];scanf("%d",&t);while(t--){scanf("%d",&n);for(i=0;i<n;i++)scanf("%lf",&a[i]);for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(a[i]<a[j])k=a[i],a[i]=a[j],a[j]=k;}}w=20;int count=0;for(i=0;w>=0;i++){w-=2*sqrt(a[i]*a[i]-1);count++;}printf("%d\n",count);}return 0;}
Nyoj sprinkler (1) (simple and greedy)