给出的数据1e12规模,常规判点是否在圆范围内肯定要用到半径,求得过程中无法避免溢出,因此用JAVA自带的浮点大数运算,和个ZZ一样比赛中eclipse出现问题,而且太久没写JAVA语法都不清楚变量忘了申请空间/构造,还不知道为什么写不了类/函数,一个一个把运算符改成JAVA大数对象封装的函数,括号看的头疼,太傻了,应该交给IDE正常的队友写的,而且也没什么难度,JAVA大数还不用考虑什么精度,怎么简单怎么来。

import java.io.*;
import java.math.*;
import java.util.*;
import java.util.concurrent.atomic.DoubleAdder;
import java.util.zip.ZipEntry; import org.omg.PortableInterceptor.DISCARDING; public class Main {
public static BigDecimal dis(BigDecimal ax, BigDecimal ay, BigDecimal bx, BigDecimal by){
BigDecimal res = ((ax.subtract(bx)).multiply(ax.subtract(bx))).add((ay.subtract(by)).multiply(ay.subtract(by)));
return res;
}
public static BigDecimal R(BigDecimal ax, BigDecimal ay, BigDecimal bx, BigDecimal by, BigDecimal cx, BigDecimal cy) {
BigDecimal pa = by.subtract(cy);
BigDecimal pb = cy.subtract(ay);
BigDecimal pc = ay.subtract(by);
BigDecimal PA = ax.multiply(pa);
BigDecimal PB = bx.multiply(pb);
BigDecimal PC = cx.multiply(pc);
return PA.add(PB.add(PC));
}
public static BigDecimal Ux(BigDecimal ax, BigDecimal ay, BigDecimal bx, BigDecimal by, BigDecimal cx, BigDecimal cy){
BigDecimal pa = by.subtract(cy);
BigDecimal pb = cy.subtract(ay);
BigDecimal pc = ay.subtract(by);
BigDecimal PA = ((ax.multiply(ax)).add((ay.multiply(ay)))).multiply(pa);
BigDecimal PB = ((bx.multiply(bx)).add((by.multiply(by)))).multiply(pb);
BigDecimal PC = ((cx.multiply(cx)).add((cy.multiply(cy)))).multiply(pc);
return PA.add(PB.add(PC));
}
public static BigDecimal Uy(BigDecimal ax, BigDecimal ay, BigDecimal bx, BigDecimal by, BigDecimal cx, BigDecimal cy){
BigDecimal pa = cx.subtract(bx);
BigDecimal pb = ax.subtract(cx);
BigDecimal pc = bx.subtract(ax);
BigDecimal PA = ((ax.multiply(ax)).add((ay.multiply(ay)))).multiply(pa);
BigDecimal PB = ((bx.multiply(bx)).add((by.multiply(by)))).multiply(pb);
BigDecimal PC = ((cx.multiply(cx)).add((cy.multiply(cy)))).multiply(pc);
return PA.add(PB.add(PC));
}
public static void main(String[] args) {
int T;
Scanner cin = new Scanner((new BufferedInputStream(System.in)));
BigDecimal[] a = new BigDecimal[2];
BigDecimal[] b = new BigDecimal[2];
BigDecimal[] c = new BigDecimal[2];
BigDecimal[] z = new BigDecimal[2];
BigDecimal r = null;
BigDecimal x = null;
BigDecimal y = null;
BigDecimal dd = null;
BigDecimal eps = BigDecimal.valueOf(1e-20);
T = cin.nextInt();
for(int i = 0; i < T; i++)
{
a[0] = cin.nextBigDecimal(); a[1] = cin.nextBigDecimal();
b[0] = cin.nextBigDecimal(); b[1] = cin.nextBigDecimal();
c[0] = cin.nextBigDecimal(); c[1] = cin.nextBigDecimal();
z[0] = cin.nextBigDecimal(); z[1] = cin.nextBigDecimal();
BigDecimal D = R(a[0], a[1], b[0], b[1], c[0], c[1]).multiply(BigDecimal.valueOf(2));
x = Ux(a[0], a[1], b[0], b[1], c[0], c[1]).divide(D);
y = Uy(a[0], a[1], b[0], b[1], c[0], c[1]).divide(D);
//System.out.println(x+" "+y);
r = dis(a[0], a[1], x, y);
dd = dis(z[0], z[1], x, y);
//System.out.println(r+" "+dd);
if(dd.subtract(r).compareTo(eps) > 0)
System.out.println("Accepted");
else
System.out.println("Rejected"); }
}
}

HDU 6206 青岛网络赛1001 高精度 简单几何的更多相关文章

  1. 16年青岛网络赛 1001 I Count Two Three

    题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1001&cid=723 I Count Two ThreeTi ...

  2. HDU 4759 Poker Shuffle(2013长春网络赛1001题)

    Poker Shuffle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  3. HDU 4738 Caocao's Bridges (2013杭州网络赛1001题,连通图,求桥)

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. HDU 5880 Family View (2016 青岛网络赛 C题,AC自动机)

    题目链接  2016 青岛网络赛  Problem C 题意  给出一些敏感词,和一篇文章.现在要屏蔽这篇文章中所有出现过的敏感词,屏蔽掉的用$'*'$表示. 建立$AC$自动机,查询的时候沿着$fa ...

  5. HDU 6212 Zuma 2017青岛网络赛 区间DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6212 解法:看了眼题就发现这个BZOJ 1032不是一毛一样?但是BZOJ上那是个巨坑,数据有错,原来 ...

  6. HDU 6215 2017Brute Force Sorting 青岛网络赛 队列加链表模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6215 题意:给你长度为n的数组,定义已经排列过的串为:相邻两项a[i],a[i+1],满足a[i]&l ...

  7. hdu 5881 Tea (2016 acm 青岛网络赛)

    原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5881 Tea Time Limit: 3000/1000 MS (Java/Others)    Me ...

  8. HDU 5884 Sort(2016年青岛网络赛 G 二分+贪心+小优化)

    好题 题意:给你n<=100000个数,每个数范围[0,1000],然后给你一个最大的代价T,每次最多合并k个数成为一个数,代价为k个数的总和.问最后合成1个数的总代价不大于T的最小k 题解:我 ...

  9. HDU 5886 Tower Defence(2016青岛网络赛 I题,树的直径 + DP)

    题目链接  2016 Qingdao Online Problem I 题意  在一棵给定的树上删掉一条边,求剩下两棵树的树的直径中较长那的那个长度的期望,答案乘上$n-1$后输出. 先把原来那棵树的 ...

随机推荐

  1. 软件工程第七周psp

    1.PSP表格 类别 任务 开始时间 结束时间 中断时间 delta时间 立会 汇报昨天的成绩,分配任务,部署计划 10月27日18:00 10月27日18:36 0 36分钟 准备工作 查阅有关资料 ...

  2. Python:列表操作总结

    一.创建一个列表 只要把逗号分隔的不同数据项使用方括号括起来即可 list1=['physics','chemistry',1997,2000] list2=[1,2,3,4,5,6,7] [注]:1 ...

  3. POJ 2063 Investment 滚动数组+完全背包

    题目链接: http://poj.org/problem?id=2063 题意: 你现在有现金m元,你要做n年的存款投资,给你k种投资方式,每种需要现金vi元,能获得xi元的理论,一年到期后你要利用拿 ...

  4. 树莓派两用优盘制作(FAT32存储+EXT树莓派系统)

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:树莓派两用优盘制作(FAT32存储+EXT树莓派系统)     本文地址:http://tec ...

  5. 结对编程——paperOne基于java web的简易四则运算出题网站

    项目成员:张金生     张政 需求分析: 1.要进行四则运算: 2.运算题目随机: 3.进行对错判断: 4.整数运算. 程序概要: 1.用JSP实现: 2.用户可选择题目数量: 3.答题页用表格列出 ...

  6. (转)ActiveMQ的重连机制

    花了一天的时间,终于搞明白了我的疑问. failover://(tcp://localhost:6168)?randomize=false&initialReconnectDelay=100& ...

  7. ubuntu下安装 openssl&&编译运行测试代码

    检查是否已安装 openssl: sudo apt-get install openssl 如果已安装执行以下操作:sudo apt-get install libssl-devsudo apt-ge ...

  8. 第132天:移动web端-rem布局(进阶)

    rem布局(进阶版) 该方案使用相当简单,把下面这段已压缩过的 原生JS(仅1kb,源码已在文章底部更新,2017/5/3) 放到 HTML 的 head 标签中即可(注:不要手动设置viewport ...

  9. Luogu4897 【模板】最小割树

    没事干写一发模板. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib& ...

  10. 《Linux内核设计与实现》学习总结 Chap1~2

    第一章 Linux内核简介 一.历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统 ...