HDU6206 几何 + 高精度
来源:互联网 发布:专业音频剪辑软件 编辑:程序博客网 时间:2024/05/21 18:34
简略题意:给出4个点的坐标,问第4个点是不是在前3个点组成的三角形的外接圆外。
先求出外接圆,然后判断第4个点和圆心的距离即可,唯一的问题是精度不够,需要上java。
import java.io.PrintWriter;import java.math.BigDecimal;import java.math.BigInteger;import java.util.Scanner;/** * * @author meopass */public class Main { static Scanner cin = new Scanner(System.in); static PrintWriter cout = new PrintWriter(System.out, true);// init(); static BigDecimal p2(BigDecimal x1) { return x1.multiply(x1); } static BigDecimal dis2(BigDecimal x1, BigDecimal y1,BigDecimal x2,BigDecimal y2) { BigDecimal tmp = BigDecimal.valueOf(0); tmp = tmp.add(x1.subtract(x2).multiply(x1.subtract(x2))); tmp = tmp.add(y1.subtract(y2).multiply(y1.subtract(y2))); return tmp; } public static void main(String[] args) { int t; t = cin.nextInt(); for(int i = 0; i < t; i++) { BigDecimal x1, y1, x2, y2, x3, y3, x4, y4; x1 = cin.nextBigDecimal(); y1 = cin.nextBigDecimal(); x2 = cin.nextBigDecimal(); y2 = cin.nextBigDecimal(); x3 = cin.nextBigDecimal(); y3 = cin.nextBigDecimal(); x4 = cin.nextBigDecimal(); y4 = cin.nextBigDecimal(); BigDecimal bx = x2.subtract(x1); BigDecimal by = y2.subtract(y1); BigDecimal cx = x3.subtract(x1); BigDecimal cy = y3.subtract(y1); BigDecimal d = BigDecimal.valueOf(2).multiply(bx.multiply(cy).subtract(by.multiply(cx))); BigDecimal x = ((cy.multiply(p2(bx).add(p2(by)))).subtract(by.multiply(p2(cx).add(p2(cy))))).divide(d).add(x1); BigDecimal y = ((bx.multiply(p2(cx).add(p2(cy)))).subtract(cx.multiply(p2(bx).add(p2(by))))).divide(d).add(y1); BigDecimal r = dis2(x1, y1, x, y); BigDecimal rr = dis2(x, y, x4, y4); if(r.compareTo(rr)>=0) cout.println("Rejected"); else cout.println("Accepted"); } }}
阅读全文
0 0
- HDU6206 几何 + 高精度
- hdu6206—Apple(计算几何+高精度)
- hdu6206 Apple 2017icpc青岛赛区 java高精度类
- Codeforces 598C. Nearest vectors【高精度几何】
- hdu6206 17青岛网络赛1001 大数
- 高精度
- 高精度
- 高精度
- 高精度。。
- 高精度
- 高精度
- 高精度
- 高精度
- 高精度
- 高精度
- 高精度
- 高精度
- 高精度
- 对于linux下system()函数的深度理解(整理)
- 根据公式(其它单元格)显示条件格式
- Linux网络编程服务器模型选择之并发服务器(下)
- Android权限适配全攻略
- activiti简单入门
- HDU6206 几何 + 高精度
- [日推荐]『Java学习者』爱学习的程序猿看过来~
- <问题解决>数据库date类型数据前端页面显示格式不正确问题
- Python获取全国所有的省、市、县、镇、村
- Centos7 添加用户及设置权限
- UI教程
- zookeeper在分布式系统中的应用
- IntelliJ-IDEA 使用技巧
- Add to List 121. Best Time to Buy and Sell Stock,我的解题思路