题意:给你三个点,保证不再同一条直线上,再给你一点,问你是否在这三个点形成的圆外。

思路:就是求出三个点外接圆的圆心和半径判断下。精度问题需要用Java大数。

已知三点坐标,求外接圆圆心坐标与半径。

a=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1))/(2.0*((x3-x1)*(y2-y1)-(x2-x1)*(y3-y1)));

b=((x2-x1)*(x3*x3-x1*x1+y3*y3-y1*y1)-(x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1))/(2.0*((y3-y1)*(x2-x1)-(y2-y1)*(x3-x1)));

r^2=(x1-a)*(x1-a)+(y1-b)*(y1-b);

内接圆圆心坐标和半径:

设:在三角形ABC中,三顶点的坐标为:A(x1,y1),B(x2,y2),C(x3,y3) BC=a,CA=b,AB=c
内心为M (X,Y) 
M((aX1+bX2+cX3)/(a+b+c),(aY1+bY2+cY3)/(a+b+c))

半径:1/2*sqrt( (a+b-c)*(a+c-b)*(b+c-a) / (a+b+c) ), a b c为三边长

代码:

import java.math.BigDecimal;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);BigDecimal x1, y1, x2, y2, x3, y3, x4, y4;int _;_ = sc.nextInt();while(_-- != 0){x1 = sc.nextBigDecimal();y1 = sc.nextBigDecimal();x2 = sc.nextBigDecimal();y2 = sc.nextBigDecimal();x3 = sc.nextBigDecimal();y3 = sc.nextBigDecimal();x4 = sc.nextBigDecimal();y4 = sc.nextBigDecimal();BigDecimal t;if(y3.equals(y1)){t = y2;y2 = y3;y3 = t;t = x2;x2 = x3;x3 = t;}BigDecimal t1 = (y3.subtract(y1)).multiply(y2.multiply(y2).subtract(y1.multiply(y1)));BigDecimal t2 = (y3.subtract(y1)).multiply(x2.multiply(x2).subtract(x1.multiply(x1)));BigDecimal t3 = (y1.subtract(y2)).multiply(y1.multiply(y1).subtract(y3.multiply(y3)));BigDecimal t4 = (y1.subtract(y2)).multiply(x1.multiply(x1).subtract(x3.multiply(x3)));BigDecimal t5 = BigDecimal.valueOf(2).multiply(y1.subtract(y2)).multiply(x3.subtract(x1));BigDecimal t6 = BigDecimal.valueOf(2).multiply(y3.subtract(y1)).multiply(x1.subtract(x2));BigDecimal x0 = (t1.add(t2).subtract(t3).subtract(t4)).divide(t5.subtract(t6));BigDecimal v1 = y3.multiply(y3);BigDecimal v2 = y1.multiply(y1);BigDecimal v3 = BigDecimal.valueOf(2).multiply(x0).multiply(x3.subtract(x1));BigDecimal v4 = x1.multiply(x1);BigDecimal v5 = x3.multiply(x3);BigDecimal v6 = BigDecimal.valueOf(2).multiply(y3.subtract(y1));
//            System.out.println(v6);BigDecimal y0 = (v1.subtract(v2).subtract(v3).subtract(v4).add(v5)).divide(v6);BigDecimal z1 = (y0.subtract(y2)).multiply(y0.subtract(y2));BigDecimal z2 = (x0.subtract(x2)).multiply(x0.subtract(x2));BigDecimal r = z1.add(z2);BigDecimal tmp1 = (x4.subtract(x0)).multiply(x4.subtract(x0));BigDecimal tmp2 = (y4.subtract(y0)).multiply(y4.subtract(y0));BigDecimal dis = tmp1.add(tmp2);if(dis.compareTo(r) > 0){System.out.println("Accepted");}else{System.out.println("Rejected");}}}
}

2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 HDU 6206 1001 Apple(三角形外接圆圆心和半径)相关推荐

  1. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  2. 计蒜客 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin(求乘法逆元)

    Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...

  3. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛B: Out-out-control cars

    问题 B: Out-out-control cars 题目描述 Two out-of-control cars crashed within about a half-hour Wednesday a ...

  4. Maximum Flow(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E)

    Problem Description Given a directed graph with nn nodes, labeled 0,1,⋯,n−1. For each <i, j> s ...

  5. Skiing(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H)

    Problem Description In this winter holiday, Bob has a plan for skiing at the mountain resort. This s ...

  6. 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)

    题意: 给定一个有向无环图,求该图的最长路. 思路: 由于是有向无环图,所以最长路肯定是一个入度为0到出度为0的路径,拓扑序在确定当前点之前能够考虑到所有到它的情况,所以最后取个最值即可. 代码: # ...

  7. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E Maximum Flow

    原题解链接:http://blog.csdn.net/kkkkahlua/article/details/78009087 他用的最小割的来求解最大流.认为只要讨论每一个点到0和n-1那个更小哪条边就 ...

  8. HDU 5882 Balanced Game(2016亚洲区青岛站网络赛)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5882 水题,直接奇偶性判断即可. #include <cstdio> #inc ...

  9. 2010 ACM/ICPC Online-Contest-SCU[四川赛区网络预选赛]

    Problem A.A Simple Problem 比赛时唯一做出来的一道题. 描述: Time limit: 1 second Memory limit: 256 megabytes There' ...

  10. 2018年 ACM/ICPC亚洲区域赛 青岛赛区现场赛 比赛总结

    首先祝贺自己收获了ACM生涯中的第二枚铜牌. 首先吐槽一下中石油: 周六早上来到中国石油大学,连个志愿者小姐姐都没看到.(但是看到了女装大佬).报完到之后发现教练少了一张午餐券(要不要这么粗心).为了 ...

最新文章

  1. Dalvik中类的加载
  2. Struts07---访问servlet的API
  3. MxGraph从入门到精通之2:HelloWorld程序解析
  4. Vue.js 组件基础
  5. ElasticSearch index 剖析
  6. Linux的实际操作:文件和文件夹的权限解读
  7. 字符串的模式匹配--BF算法KMP算法
  8. 会计电算化常考题目二
  9. Window10环境下的Jupyter notebook安装与打开默认路径的修改
  10. 不定宽高的DIV,垂直水平居中
  11. PaddlePaddle飞桨OCR文本检测——识别图片文字结果并保存为txt(五)
  12. eclipse打开就闪退怎么办?
  13. 吴恩达机器学习作业2
  14. 射频芯片,最全介绍!
  15. Android Studio 使用夜神模拟器查看apk打印日志
  16. 推荐系统之从石器时代到青铜时代的演进史
  17. Linux 快速搭建免费邮件服务器
  18. sklearn:OneHotEncoder的简单用法
  19. 基于遗传算法的simulink/PID参数整定(s函数)
  20. 【Bzoj2242】计算器

热门文章

  1. 【IOS账号分享】《魔女之泉4》
  2. 《人月神话》-第19章-20年后的《人月神话》
  3. 伪加密文件的破解方法
  4. python如何使用gpu_tensorflow 在windows 下怎么使用gpu ?
  5. 树莓派29/100 - 树莓派接上Kindle的墨水屏是什么体验?
  6. adams 2015破解安装汉化教程
  7. Apex里面的retainAll
  8. 【笔记】QCA9531无线校准
  9. OpenCV图像处理专栏六 | 来自何凯明博士的暗通道去雾算法(CVPR 2009最佳论文)
  10. 小孩儿学计算机可以学些什么,基础知识