http://blog.youkuaiyun.com/dingsai88/article/details/51179187
http://blog.youkuaiyun.com/hongkangwl/article/details/12706935?utm_source=jiancool
参考上面文章,用到贪心算法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
public class hh {
public static void main(String[] args) throws IOException {
BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
String[] radius;
System.out.println("请输入测试组数");
int n = Integer.parseInt(strin.readLine());
int num = 1;
while (n > 0) {
System.out.println("请输入第" + (num) + "组喷头数目");
int count = Integer.parseInt(strin.readLine());
System.out.println("请输入第" + (num) + "组喷头半径");
String ss = strin.readLine();
radius = ss.split(" ");
Arrays.sort(radius);
int result = col(radius);
System.out.println("第" + num + "组最少需要喷头" + result + "个");
num++;
n--;
}
}
private static int col(String[] radius) {
double sum = 0;
int num = 0;
for (int i = radius.length - 1; i > 0; i--) {
double n = Double.parseDouble(radius[i]);
sum += 2 * Math.sqrt(n * n - 1);
if (sum >= 20) {
return i + 1;
}
}
return radius.length;
}
}