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的序列,问这个序列是否 ... 
随机推荐
- 常用cl编译命令参数解释
			紧接前文,第一行cl命令如下: 1> cl /c /IC:\...\include /ZI /nologo- /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG ... 
- MVC基架生成的Index视图
			@model IEnumerable<MyMusicStore.Models.Album> @{ ViewBag.Title = "Index"; } < ... 
- WPF刷新界面
			Winform 里有 Application.DoEvents();可刷新! WPF 里没这个,尽管可用委托实现多线程,但是刷新还是不行! 后来找到了 类似App.DoEvents()的方法(): 代 ... 
- 【C#】WixToolset快速入门教程
			原文:[C#]WixToolset快速入门教程 介绍 给windows系统做软件,常见的打包工具大家可能都听说过,如:大名鼎鼎的Installshield.Inno setup等.在遇见Wix之前In ... 
- C# GC Finalizer IDispseable,.Net的垃圾回收机制
			1.GC只能回收堆里的托管资源 2.GC 回收,"代"的概念 .net 托管资源分三代,代数越大 资源的生命周期越长. 0 代 和1代的资源比较少可以比较频率的回收, 回收2代以上 ... 
- WPF将点列连接成光滑曲线——贝塞尔曲线
			原文:WPF将点列连接成光滑曲线--贝塞尔曲线 背景 最近在写一个游戏场景编辑器,虽然很水,但是还是遇到了不少问题.连接离散个点列成为光滑曲线就是一个问题.主要是为了通过关键点产生2D的赛道场景.总之 ... 
- AlwaysOn数据同步暂停及回退技术
			随着AlwaysOn技术的流行,关于AlwayOn的问题也越来越多,某企业搭建有三副本的AlwaysOn一套,现想修改主节点上某张表的某个数据,看看会出现什么后果,如果结果正常,就同步到其他节点上:如 ... 
- Hadoop 3、Hadoop 分布式存储系统 HDFS(好多彩色图)
			HDFS是Hadoop Distribute File System 的简称,也就是Hadoop的一个分布式文件系统. 一.HDFS的优缺点 1.HDFS优点: a.高容错性 .数据保存多个副本 .数 ... 
- Qt 之 样式表的使用——样式选择器(上下篇,很详细)
			http://blog.csdn.net/goforwardtostep/article/details/60884870 http://blog.csdn.net/goforwardtostep/a ... 
- Bitmap的读写和几个小儿科的滤镜效果~
			闲来玩玩图像处理,拿破仑说过:“不想自己实现滤镜的美工不是好程序员~~#@!*^...#&!@......” 因为在学校做过很多美工的工作,而且从小就喜欢画画所以对图像相关的东西都还比较感兴 ... 
