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的序列,问这个序列是否 ...
随机推荐
- 如何加入该网站for Linux(绑定域名)
[路径跟踪配置由阿里云提供的标准环境的路径为准,假设你单独安装.请根据实际的安装路径配置]. 1.cd /alidata/server/httpd/conf/vhosts/ 进入绑定域名所在文件夹 ...
- 2019 renew 博客目录
.net && .net core Microsoft.AspNet.SignalR实现弹幕(即时通讯) C#调用JS httpclient POST请求(urlencoded) 二维 ...
- 微信小程序入门-指南针
微信小程序提供了众多的原生API接口,利用罗盘接口,做了个简单的指南针小程序,搜索小程序[X的实验室]可看效果. 实现方案 利用罗盘接口返回的[数据],转化为指南针偏移量[度数],利用CSS3 tra ...
- 【Python】设备重启测试
①添加读取键盘输入功能,方便测试者选择压测次数! Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘. input 可以接收一个Python表达式作为输入,并将运 ...
- Android零基础入门第34节:Android中基于监听的事件处理
原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...
- delphi中最小化其他程序及所有程序最小化(使用 shell.minimizeAll 和自己寻找窗口这两种办法)
1.所有程序最小化 uses ComObj; var shell : OleVariant; begin shell := CreateOleObject('Shell.Appli ...
- delphi 在多线程中使用 CreateOleObject 导致失败(一定要使用CoInitialize和CoUninitialize,举例查询WMI)
原帖地址 http://bbs.csdn.net/topics/390481350 解决办法 procedure DisplayVideoInfo; var wmi, objs, obj : OleV ...
- Qt实现小功能之列表无限加载(创意很不错:监听滚动条事件,到底部的时候再new QListWidgetItem)
概念介绍 无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式.无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的.当用户往下拖动滚动条或使用 ...
- hive Metastore contains multiple versions
凌晨接到hive作业异常,hive版本为1.2.1,hadoop版本apache 2.7.1,元数据存储在mysql中,异常信息如下: Logging initialized using config ...
- 什么是T1与E1线路
Leased Line 租用线路 租用线路是电信公司为某一机构建造的永久性通信电路.租用线路旁路了本地交换电信局(LEC)上的交换设备,所以在每次数据传输之前无需起始阶段,它们总是连通的.如果线路是长 ...