题:http://acm.nyist.net/JudgeOnline/problem.php?pid=6
题目本身就是一个greedy algorithm尽量使用范围最大的装置,开始以为一个装置可以使用多个,后来发现题目的意思就是给你一排不同半径的装置,每个只能用一次,问你最多用多少不同的。
要灵活只用stl的sort哦
Mark: April 7,2014, USC SSL
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
using namespace std;
bool cmp(double a,double b)
{
return a>b;
}
int main()
{
int n,num,N;
double R[600],wide=20;
cin>>n;
while(n--)
{
cin>>num;
wide=20;
N=0;
for(int i=0;i<num;i++)
{
cin>>R[i];
}
sort(R,R+num,cmp);
for(int i=0;i<num;i++)
{ if(wide<0)
break;
N++;
wide=wide-2*double(sqrt(R[i]*R[i]-1));
}
cout<<N<<endl;
}
}