HDU 6026 Apple【高精度问题】
来源:互联网 发布:ubuntu软件中心打不开 编辑:程序博客网 时间:2024/06/05 12:16
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6206
题目大意及分析:每组数据四个点,前三个点能组成三角形,判断另外一个点是否在这个三角形外接圆的外部,输出相应的结果。
高精度问题,数据范围比较大,本来想着用浮点数把数据范围缩小,一直WA,尝试用java写了一发。
注意java提交时不能加包名,否则会一直WA。第一次用java写题,虽然过程很坎坷,不过A了还是很开心,纪念一下。
CODE:
import java.math.BigDecimal;import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubint t;Scanner scan= new Scanner(System.in);BigDecimal two=new BigDecimal("2.0");t=scan.nextInt();for(int i=0;i<t;i++){BigDecimal x1,y1,x2,y2,x3,y3,px,py;x1=scan.nextBigDecimal();y1=scan.nextBigDecimal();x2=scan.nextBigDecimal();y2=scan.nextBigDecimal();x3=scan.nextBigDecimal();y3=scan.nextBigDecimal();px=scan.nextBigDecimal();py=scan.nextBigDecimal();/*a1=x2-x1,b1=y2-y1,c1=(a1*a1+b1*b1)/2*/BigDecimal a1=x2.subtract(x1),b1=y2.subtract(y1);BigDecimal c1=(a1.multiply(a1).add(b1.multiply(b1))).divide(two);/*a2=x3-x1,b2=y3-y1,c2=(a2*a2+b2*b2)/2*/BigDecimal a2=x3.subtract(x1),b2=y3.subtract(y1);BigDecimal c2=(a2.multiply(a2).add(b2.multiply(b2))).divide(two);/*d=a1*b2-a2*b1*/BigDecimal d=a1.multiply(b2).subtract(a2.multiply(b1));/*三角形外心(x1+(c1*b2-c2*b1)/d,y1+(a1*c2-a2*c1)/d)*/BigDecimal ansx=x1.add((c1.multiply(b2).subtract(c2.multiply(b1))).divide(d));BigDecimal ansy=y1.add((a1.multiply(c2).subtract(a2.multiply(c1))).divide(d));/*比较p点是否在三角形的外接圆外*/BigDecimal dis1=((x1.subtract(ansx)).multiply(x1.subtract(ansx))).add((y1.subtract(ansy)).multiply(y1.subtract(ansy)));BigDecimal dis2=((px.subtract(ansx)).multiply(px.subtract(ansx))).add((py.subtract(ansy)).multiply(py.subtract(ansy)));//System.out.println(dis1);//System.out.println(dis2);if(dis1.compareTo(dis2)<0) System.out.println("Accepted");elseSystem.out.println("Rejected");}}}
阅读全文
0 0
- HDU 6026 Apple【高精度问题】
- HDU 6206 Apple(高精度浮点数)
- HDU 6206 Apple (数学 高精度计算)
- HDU 6206 Apple(高精度C++)
- HDU 1064Financial Management(高精度问题)
- HDU 6206 Apple 2017ICPC青岛网赛 A (高精度+大数模版)
- hdu6206—Apple(计算几何+高精度)
- HDU 4925 Apple Tree
- HDU 4925 Apple Tree
- Hdu 4925 Apple Tree
- HDU 4925 Apple tree
- hdu 4925 Apple Tree
- hdu 4925 Apple Tree
- hdu 4925 Apple Tree
- HDU 4925 Apple Tree
- hdu 4925 apple tree
- hdu 5160 Apple
- hdu 6206 Apple
- RPC作品开发记录
- gRPC学习笔记
- cache、内存、虚拟内存
- 二叉树的非递归按层遍历
- GET方式缓存清除
- HDU 6026 Apple【高精度问题】
- github+hexo+阿里云搭建个人博客
- 《简爱》:爱与自由
- <C++ Primer_5th>习题_3.5
- 多线程编程之线程间的通信——wait and notify
- 网页上搞出个"HelloWorld".........................
- CSS3背景属性
- <C++ Primer_5th>习题_3.6
- Program[01]-The datetime Library