贪心:先用最大的圆覆盖,能覆盖住的就是图中的灰色的小长方形
#include <iostream> #include<algorithm> #include<math.h> using namespace std; double ri[600]; double length; int m,n; int main() { cin>>m; while(m--){ length = 20.0; cin>>n; for(int i=0;i<n;i++){ cin>>ri[i]; } sort(ri,ri+n); int k=n-1; while(length>0){ length-=2*sqrt(ri[k]*ri[k]-1);//核心 k--; } cout<<n-1-k<<endl; } return 0; }