贪心算法:喷水装置(一)
2017-12-17 17:23
113 查看
题目要求:http://acm.nyist.net/JudgeOnline/problem.php?pid=6
代码实现:
总结:
这个题目的意思是让我在给出的几个喷水装置里选,尽量让选的最少,这时就需要对半径排序,选最大的,直到都给覆盖了就ok啦。要考虑下特殊情况,就是所选半径小于1m,可能是题目未说明清楚把,就直接拿半径来考虑。这里的重点是宽度,而不是半径!
宽带=2*(半径的平方截取1的平方开根号)!!
代码实现:
import java.util.Arrays; import java.util.Scanner; /** * @author CTO * */ public class One { private static int X = 20; public static void main(String args[]) { Scanner sc = new Scanner(System.in); double arr[] = new double[100]; while (sc.hasNext()) { int a = sc.nextInt(); for (int i = 0; i < a; i++) { int b = sc.nextInt(); for (int h = 0; h < b; h++) { arr[h] = sc.nextDouble(); } Arrays.sort(arr);// 先给排序,从小往大排序 double num = 0; int count = 0; for (int f = arr.length - 1; f >= 0; f--) { if (num <= X){ num += Math.sqrt(arr[f]*arr[f]-1)*2; count++; } } System.out.println(count); } } } }
总结:
这个题目的意思是让我在给出的几个喷水装置里选,尽量让选的最少,这时就需要对半径排序,选最大的,直到都给覆盖了就ok啦。要考虑下特殊情况,就是所选半径小于1m,可能是题目未说明清楚把,就直接拿半径来考虑。这里的重点是宽度,而不是半径!
宽带=2*(半径的平方截取1的平方开根号)!!
相关文章推荐
- 贪心算法之——喷水装置二(nyoj12)
- C语言贪心算法之喷水装置(二)
- 贪心算法之喷水装置(一)水题
- 贪心算法之——喷水装置(一)
- 贪心算法之——喷水装置一(nyoj6)
- 贪心算法-nyoj-6喷水装置(一)
- nyoj 6 喷水装置(一)(简单贪心)
- 喷水装置(二) 【线段的覆盖】【贪心】
- NYOJ 题目6 喷水装置(一) 水贪心
- NYOJ 6 喷水装置(一) (贪心)
- NYOJ 12-喷水装置(二)(简单贪心)
- 贪心问题:区间覆盖 NYOJ 喷水装置(二)
- NYOJ 006 喷水装置(贪心)
- NYOJ-----12---喷水装置(二)贪心
- 喷水装置二---耗时两天,感觉只是会这道题而已,区间贪心
- 南阳理工 贪心 12 喷水装置(二)
- NYOJ题目6-喷水装置(一)(贪心)
- nyoj12-喷水装置(二)(贪心)
- 贪心算法之喷水设置
- 【南理oj】6 - 喷水装置(一)(贪心)