zoukankan      html  css  js  c++  java
  • poj 6206 Apple

    Apple

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
    Total Submission(s): 806    Accepted Submission(s): 267


    Problem Description
    Apple is Taotao's favourite fruit. In his backyard, there are three apple trees with coordinates (x1,y1)(x2,y2), and (x3,y3). Now Taotao is planning to plant a new one, but he is not willing to take these trees too close. He believes that the new apple tree should be outside the circle which the three apple trees that already exist is on. Taotao picked a potential position (x,y) of the new tree. Could you tell him if it is outside the circle or not?
     
    Input
    The first line contains an integer T, indicating that there are T(T30) cases.
    In the first line of each case, there are eight integers x1,y1,x2,y2,x3,y3,x,y, as described above.
    The absolute values of integers in input are less than or equal to 1,000,000,000,000.
    It is guaranteed that, any three of the four positions do not lie on a straight line.
     
    Output
    For each case, output "Accepted" if the position is outside the circle, or "Rejected" if the position is on or inside the circle.
     
    Sample Input
    3
    -2 0 0 -2 2 0 2 -2
    -2 0 0 -2 2 0 0 2
    -2 0 0 -2 2 0 1 1
    

      

    Sample Output
    Accepted
    Rejected
    Rejected
    

     

    只需要输入三个点的坐标即可
    p1(x1,y1)  p2(x2,y2)   p3(x3,y3)
    A=x1*x1+y1*y1 
    B=x2*x2+y2*y2
    C=x3*x3+y3*y3
    G=(y3-y2)*x1+(y1-y3)*x2+(y2-y1)*x3
    X=((B-C)*y1+(C-A)*y2+(A-B)*y3)/(2*G)
    Y=((C-B)*x1+(A-C)*x2+(B-A)*x3)/(2*G)
    

      

    import java.math.BigDecimal;
    import java.util.Scanner;
    
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner cin=new Scanner(System.in);
            BigDecimal A,B,C,G;
            BigDecimal x1,x2,x3,y1,y2,y3,x0,y0;
            BigDecimal X,Y;
            int t;
            t=cin.nextInt();
            while(t-->0)
            {
                x1=cin.nextBigDecimal();
                y1=cin.nextBigDecimal();
                x2=cin.nextBigDecimal();
                y2=cin.nextBigDecimal();
                x3=cin.nextBigDecimal();
                y3=cin.nextBigDecimal();
                x0=cin.nextBigDecimal();
                y0=cin.nextBigDecimal();
                A=x1.multiply(x1).add(y1.multiply(y1));
                B=x2.multiply(x2).add(y2.multiply(y2));
                C=x3.multiply(x3).add(y3.multiply(y3));
                G=BigDecimal.valueOf(1);
                G=y3.subtract(y2).multiply(x1).add(y1.subtract(y3).multiply(x2)).add(y2.subtract(y1).multiply(x3));
                X=B.subtract(C).multiply(y1).add(C.subtract(A).multiply(y2)).add(A.subtract(B).multiply(y3)).divide(BigDecimal.valueOf(2));
                Y=C.subtract(B).multiply(x1).add(A.subtract(C).multiply(x2)).add(B.subtract(A).multiply(x3)).divide(BigDecimal.valueOf(2));
                x0=x0.multiply(G);
                y0=y0.multiply(G);
                x1=x1.multiply(G);
                y1=y1.multiply(G);
                BigDecimal a=x0.subtract(X).multiply(x0.subtract(X)).add( y0.subtract(Y).multiply(y0.subtract(Y)));
                BigDecimal b=x1.subtract(X).multiply(x1.subtract(X)).add( y1.subtract(Y).multiply(y1.subtract(Y)));
                if(a.compareTo(b)>0)
                    System.out.println("Accepted");
                else
                    System.out.println("Rejected");
            }
        }
    }
    

      

  • 相关阅读:
    替换html里面的 及解决记事本中的每个段落只有一行的情形
    关于 'list' object has no attribute 'select'
    python写爬虫的弯路
    将博客搬至CSDN
    转载:如何让spring mvc web应用启动时就执行
    java开发人员,最应该学习和熟练使用的工具类。google guava.(谷歌 瓜娃)
    解决svn问题:Wrong committed revision number: -1
    生产环境中,数据库升级维护的最佳解决方案flyway
    在JaveWeb项目中配置Spring 匿名访问时,匹配规则的变相实现/*
    nexus的使用
  • 原文地址:https://www.cnblogs.com/--lr/p/7587275.html
Copyright © 2011-2022 走看看