zoukankan      html  css  js  c++  java
  • hdu 5365 Run

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    
    int n;
    int x[30],y[30];
    
    class Coordinate
    {
    public:
        double xCoordinate;
        double yCoordinate;
    
        Coordinate(double x = 0,double y = 0)
        {
            this->xCoordinate = x;
            this->yCoordinate = y;
        }
    
        bool operator!=(Coordinate const &comp) const
        {
            return (this->xCoordinate != comp.xCoordinate ||
                    this->yCoordinate != comp.yCoordinate);
        }
    }tp[10];
    
    
    bool Judge(Coordinate const x,Coordinate const y,Coordinate const z)
    {
        Coordinate *mVector = new Coordinate(x.xCoordinate - y.xCoordinate,
                                            x.yCoordinate - y.yCoordinate);
        Coordinate *nVector = new Coordinate(z.xCoordinate -
                                            (x.xCoordinate + y.xCoordinate)/2,
                                             z.yCoordinate -
                                             (x.yCoordinate + y.yCoordinate)/2);
        bool result = ((mVector->xCoordinate * nVector->xCoordinate +
                        mVector->yCoordinate * nVector->yCoordinate) == 0);
    
        if(result)
            result = (mVector->xCoordinate * mVector->xCoordinate +
                    mVector->yCoordinate * mVector->yCoordinate)
                     == ((nVector->xCoordinate * nVector->xCoordinate +
                        nVector->yCoordinate * nVector->yCoordinate) * 4);
    
        delete mVector;
        delete nVector;
    
        return result;
    }
    
    
    bool IsSquare(Coordinate *tp,int length)
    {
        if(length != 4)
            return false;
        int a,b,c;
    
        if(Judge(tp[0],tp[1],tp[2]))
        {
            a = 0;
            b = 1;
            c = 2;
        }
        else if(Judge(tp[0],tp[2],tp[1]))
        {
            a = 0;
            b = 2;
            c = 1;
        }
        else if(Judge(tp[2],tp[1],tp[0]))
        {
            a = 1;
            b = 2;
            c = 0;
        }
        else
            return false;
    
        return (tp[3] != tp[c] && Judge(tp[a],tp[b],tp[3]));
    }
    
    int main()
    {
        while(~scanf("%d",&n)){
        int ans=0;
        for(int i=0;i<n;i++)
            scanf("%d%d",&x[i],&y[i]);
        for(int a=0;a<n;a++)
            for(int b=a+1;b<n;b++)
                for(int c=b+1;c<n;c++)
                    for(int d=c+1;d<n;d++)
                    {
                        tp[0].xCoordinate=x[a];tp[0].yCoordinate=y[a];
                        tp[1].xCoordinate=x[b];tp[1].yCoordinate=y[b];
                        tp[2].xCoordinate=x[c];tp[2].yCoordinate=y[c];
                        tp[3].xCoordinate=x[d];tp[3].yCoordinate=y[d];
                        if(IsSquare(tp,4)) ans++;
                    }
        printf("%d
    ",ans);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    springboot之redis的应用
    redis外部访问
    Calendar时间操作
    zookeeper安装
    springboot的interceptor(拦截器)的应用
    springboot中filter的用法
    IIS无法启动,应用程序池自动关闭
    HTTP 错误 403.14
    【转】JavaScript => TypeScript 入门
    angular2使用ng g component navbar创建组件报错
  • 原文地址:https://www.cnblogs.com/xryz/p/4847846.html
Copyright © 2011-2022 走看看