是圆的问题呢(洛谷P1652题题解,Java语言描述)
前言
好久没写博客啦~~
前一段时间忙别的事,也给自己好好“放了个假”,准备开始新的旅程了!!!
那就先刷刷水题陶冶情操吧~~
题目要求
P1652题目链接
分析
看起来挺迷惑,实际上还挺简单的。
我们这么来思考这个问题:
两圆之间的位置关系有5种——内含、外离、相交、内切、外切。
题目要求“不相交”,即不能有“相交”、“内切”、“外切”,所以只有“内含”、“外离”。
既然是任意曲线,且不能相交,那么我们一定可以有N条路径,可以与指定点不位于其中的任何圆不相交。(这句话好好读读,比较hhhhh)这样就可以求我们要求的“最少”。
据上分析,我们关注的焦点就是——指定点位于哪些圆内部。
但是,我们还要注意,如果两个点同时位于同一个圆内,则可以不穿过这个圆。
这样就有两种情况啦:
- 点1在,点2不在
- 点1不在,点2在
所以就可以写我们的算法啦。。。
所有数据读进去,用数组就可以随机访问,且索引一一对应啦!!
AC代码(Java语言描述)
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();int[] x_array = new int[num];int[] y_array = new int[num];int[] radius_array = new int[num];for (int i = 0; i < num; i++) {x_array[i] = scanner.nextInt();}for (int i = 0; i < num; i++) {y_array[i] = scanner.nextInt();}for (int i = 0; i < num; i++) {radius_array[i] = scanner.nextInt();}int x1 = scanner.nextInt(), y1 = scanner.nextInt(), x2 = scanner.nextInt(), y2 = scanner.nextInt();scanner.close();int counter = 0;for (int i = 0; i < num; i++) {if (Math.pow((x1 - x_array[i]), 2) + Math.pow(y1 - y_array[i], 2) <= Math.pow(radius_array[i], 2)) {if (!(Math.pow((x2 - x_array[i]), 2) + Math.pow(y2 - y_array[i], 2) <= Math.pow(radius_array[i], 2))) {counter++;}} else {if (Math.pow((x2 - x_array[i]), 2) + Math.pow(y2 - y_array[i], 2) <= Math.pow(radius_array[i], 2)) {counter++;}}}System.out.println(counter);}
}
祝大家新年快乐!!!
是圆的问题呢(洛谷P1652题题解,Java语言描述)相关推荐
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...
- 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)
题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...
- 麦森数(洛谷P1045题题解,Java语言描述)
题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...
- 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)
题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...
- 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)
题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...
- 求子集元素之和(洛谷P2415题题解,Java语言描述)
题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...
- 用0和5凑被90整除的max数(洛谷P2192题题解,Java语言描述)
题目要求 P2192题目链接 分析 盘一盘各种情况吧: 要被90整除,就必须被10整除,所以必须有0,没0就是-1啊. 要被90整除,一堆5,靠0是没用的,只能是9个5凑一堆儿才有用,有0但凑不够9个 ...
- 贪心策略摘果子(洛谷P1478题题解,Java语言描述)
题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...
- N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)
题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...
最新文章
- 爬虫图片href是html图片,python爬虫取图片详解,
- 自然语言处理算法工程师历史最全资料汇总-基础知识点、面试经验
- UiBot新版本即将上线!添加Java程序支持!
- 成功解决NVIDIA安装程序无法继续 Ths OCH driver package is not conmtibIe with the currently uistalled version of
- mysql改国标码_MySQL 优化实施方案
- ​“统治”移动处理器市场的Arm为何明年Q1才发布AI处理器?
- 【学生党福利】AD 学生免费许可申请
- 重大改革!Python将被加入高考科目!
- 【面经】字节跳动 算法面试复盘
- 获取Element UI中button组件的ID值
- Ubuntu16.04 安装Spyder问题
- 西安交大王之坤摘得金奖桂冠,浙大团体第一,1016名高手同台竞技CCSP2020
- 安装深度linux系统卡住不动,简单有效!一招解决深度Linux死机问题
- 2021-2027全球与中国拆弹机器人市场现状及未来发展趋势
- STM8S编译错误unable to allocate space for sections/blocks with a total
- 解决苹果电脑(Mac)无法写入移动硬盘的方法
- Mac运行已安装软件提示“XXX 已损坏,打不开。移到废纸篓/推出磁盘映像。”解决方法
- 《数据结构》C语言版(严蔚敏)——绪论(一)
- 默认文献工具_极大提高效率:深度学习论文写作工具杂谈
- Cython(一)安装与使用
热门文章
- vagrant box各种命令汇总
- 深入浅出的排序算法-冒泡排序
- 企业案例(二):增量恢复案例
- 复制GAC中的DLL
- UpdatePanel的妙用:Incremental Content
- CSS 横向导航栏(由竖向改成横向 float)
- 严重: StandardServer.await: create[localhost:8005]
- linux修改hostname
- python字符串的表示形式_python - 如何为类对象创建自定义字符串表示形式?_class_酷徒编程知识库...
- vue 时间回显 格式化_VSCode 开发Vue必备插件