贪心算法 之 喷水装置(一)

#include <iostream>

#include <cmath>

using namespace std;

double a[610];

int main()

{

    int m;

    cin>>m;

    while(m--){

       int n,i,j;

       cin>>n;

       for(i=0;i<n;i++){

            cin>>a[i];

        }

         

       for(i=0;i<n-1;i++)  //从大到小排序

            for(j=i+1;j<n;j++){

                if(a[i]<a[j])

                                   swap(a[i],a[j]);

           }        

       double length=0;

         

        for( i=0;i<n;i++){  //判断是否符合条件,当所选的预圆的半径之和大于或等于矩形斜边的一半时符合条件

                     length+=a[i];

                     if(length>=sqrt(404)/2) {

                cout<<i+1<<endl;

                break;

            }

        }

    }

    return 0;

}

原文地址:https://www.cnblogs.com/CAOYR/p/5459795.html