HDU 6207:Apple(Java高精度)
题意
给出三个圆上的点,和一个目标的点,问目标点是否在这三个点构成的圆外面。
思路
许久没见过的Java高精度,不要加package!!!
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
while(t > 0) {
t--;
Point a = new Point(), b = new Point(), c = new Point(), tar = new Point();
a.x = scan.nextBigDecimal();
a.y = scan.nextBigDecimal();
b.x = scan.nextBigDecimal();
b.y = scan.nextBigDecimal();
c.x = scan.nextBigDecimal();
c.y = scan.nextBigDecimal();
tar.x = scan.nextBigDecimal();
tar.y = scan.nextBigDecimal();
Point zhong = new Point();
zhong.Waixin(a, b, c);
// System.out.println("zhongx : " + zhong.x + ", zhongy : " + zhong.y);
// System.out.println("tarx : " + tar.x + ", tary : " + tar.y);
BigDecimal d1 = zhong.Cal(tar, zhong); // 目标点和圆心距离
BigDecimal d2 = zhong.Cal(a, zhong); // 半径
// System.out.println("d1 : " + d1 + "\n" + "d2 : " + d2);
if(d1.compareTo(d2) != 1) System.out.println("Rejected");
else System.out.println("Accepted");
}
}
}
class Point {
public BigDecimal x;
public BigDecimal y;
void Waixin (Point a, Point b, Point c) {
BigDecimal two = new BigDecimal(2);
BigDecimal a1 = b.x.subtract(a.x), b1 = b.y.subtract(a.y);
BigDecimal aa1 = a1.multiply(a1);
BigDecimal bb1 = b1.multiply(b1);
BigDecimal cc1 = aa1.add(bb1);
BigDecimal c1 = aa1.add(bb1);
c1 = c1.divide(two);
BigDecimal a2 = c.x.subtract(a.x), b2 = c.y.subtract(a.y);
BigDecimal aa2 = a2.multiply(a2);
BigDecimal bb2 = b2.multiply(b2);
BigDecimal c2 = aa2.add(bb2);
c2 = c2.divide(two);
BigDecimal d1 = a1.multiply(b2);
BigDecimal d2 = a2.multiply(b1);
BigDecimal d = d1.subtract(d2);
BigDecimal qq = c1.multiply(b2), ww = c2.multiply(b1), ee = a1.multiply(c2), rr = a2.multiply(c1);
BigDecimal ii = qq.subtract(ww), jj = ee.subtract(rr);
ii = ii.divide(d);
jj = jj.divide(d);
this.x = a.x.add(ii);
this.y = a.y.add(jj);
}
BigDecimal Cal(Point a, Point b) {
BigDecimal xx = a.x.subtract(b.x), yy = a.y.subtract(b.y);
xx = xx.multiply(xx);
yy = yy.multiply(yy);
xx = xx.add(yy);
return xx;
}
}
HDU 6207:Apple(Java高精度)的更多相关文章
- HDU 6206 Apple【计算几何+高精度Java】
Problem Description Apple is Taotao's favourite fruit. In his backyard, there are three apple trees ...
- Java高精度学习第一弹
为了快速解决高精度问题,总算是要来接触java了,算上这学期要开java的课了,好好学习吧! 拿来练手的是hdu的1002,高精度加法. import java.util.*; import java ...
- Java高精度学习第二弹——求N!
继续学习Java高精度,今天写的是求N!. 首先附上源代码: import java.util.Scanner; import java.math.BigInteger; public class M ...
- JAVA高精度模板
刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板. 参考:https://www.cnblogs.com/imzscilovecode/p/883 ...
- java高精度实数和小数
java 高精度实数和小数 String s = "1231222222222222222222222222222222222222222222222222222222"; Big ...
- java高精度类尝试
java高精度尝试, poj2109,比较坑的题目 import java.io.*; import java.util.*; import java.math.*; public class Mai ...
- HDU 4925 Apple Tree(推理)
HDU 4925 Apple Tree 题目链接 题意:给一个m*n矩阵种树,每一个位置能够选择种树或者施肥,假设种上去的位置就不能施肥,假设施肥则能让周围果树产量乘2.问最大收益 思路:推理得到肯定 ...
- Java高精度基础+开根
在焦作站的acm网络赛中遇到了一个高精度开根的水题--但是那时候WA了 后面学写java补题还T了orz 所以写一篇文章来记录一下java的大整数类型的基础和开根还有一点心得体会吧 首先给那一题的题面 ...
- hdu 5429 Geometric Progression 高精度浮点数(java版本)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5429 题意:给一段长度不超过100的每个数字(可以是浮点数)的长度不超过1000的序列,问这个序列是否 ...
随机推荐
- Android 动画具体解释Frame动画 (Drawable Animation)
Frame动画像gif画画,通过一些静态的图片,以实现动画效果. Android sdk该AnimationDrawable就是专门针对Frame动画,当然Frame动画也可在java代码或者xml中 ...
- C# 操作XML文档 使用XmlDocument类方法
W3C制定了XML DOM标准.很多编程语言中多提供了支持W3C XML DOM标准的API.我在之前的文章中介绍过如何使用Javascript对XML文档进行加载与查询.在本文中,我来介绍一下.Ne ...
- .Net 通过Cmd执行Adb命令 /c参数
通过cmd.exe来执行adb命令,可以进行一些命令组合,直接用adb.exe的话只能执行单个adb命令 这里要注意cmd 中的/c参数,指明此参数时,他将执行整个字符串中包含的命令并退出当前cmd运 ...
- Delphi中流对象的应用
Delphi的流对象(TStream的派生对象)有如下读写函数: function Read(var Buffer; Count: Longint): Longint;function Write(c ...
- .NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现
原文:.NET环境下有关打印页面设置.打印机设置.打印预览对话框的实现 我个人认为,开发MIS,首先就得解决网格的问题,而开发工具为我们提供了如DataGrid.MSHFlexGrid的控件.其次,是 ...
- PHP trait 特性在 Laravel 中的使用个人心得
trait 是在PHP5.4中为了方便代码复用的一种实现方式,但目前我在看的的PHP项目中较少看的有程序员去主动使用这个实现方式,在laravel中有很多 trait 的使用,关于trait 在 la ...
- Android 8通过startService引起crash问题
Android 8.0 不再允许后台service直接通过startService方式去启动,否则就会引起IllegalStateException.解决方式: if (Build.VERSION.S ...
- Delphi-网络编程-第一个网络方面作品(UDP聊天程序)
其实这不算是一个聊天程序,因为还不能实现双方互发信息,只有一方能发信息,呵呵 我以后再改进吧.... 服务端代码: unit Unit1; interface uses Windows, ...
- C# winform 主界面打开并关闭登录界面
在winform 界面编程中,我们有时候要在主界面打开之前先显示登录界面,当登录界面用户信息校验正确后才打开主界面,而这时登陆界面也完成使命该功成身退了. 目前有两种方法可实现: 方法1. 隐藏登录界 ...
- C++开源库,欢迎补充
C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年.因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用.当Java横行天下之后,MS又突然发力,搞出C#语 ...