nyoj-6-喷水装置(一)

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<math.h>
 5 bool cmp(float a,float b)
 6 {
 7     return a>b;
 8 }
 9 int main()
10 {
11     int n,m,i;
12     scanf("%d",&n);
13     while(n--)
14     {
15         float a[610];
16         scanf("%d",&m);
17         for(i=0;i<m;i++)
18             scanf("%f",&a[i]);
19         std::sort(a,a+m,cmp);
20         int num=0;
21         float sum=0;
22         //printf("%d %f %d
",m,sum,num);
23         for(i=0;i<m;i++)
24         {
25             sum+=2.0*sqrt(a[i]*a[i]-1);
26             num++;
27             if(sum>=20)
28             break;
29         }
30         printf("%d
",num);
31     }
32     return 0;
33 }

这个题自认为是贪心算法     从大的开始加  满足就跳出   

原文地址:https://www.cnblogs.com/nylg-haozi/p/3184165.html