zoukankan      html  css  js  c++  java
  • Foj 2148 二维几何(点是否在三角形内)

    题目大意:给n个坐标(不存在三点共线的点),求能够组成多少个凸四边形。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    
    struct Point
    {
        int x,y;
        Point(int x=0,int y=0):x(x),y(y){}
    }p[35];
    
    typedef Point Vector;
    
    Vector operator - (Vector A, Vector B){ return Vector(A.x-B.x,A.y-B.y);}
    
    int AbsCross(Vector A,Vector B){ return fabs(A.x*B.y-A.y*B.x);}
    
    Point read_point()
    {
        Point p1;
        scanf("%d %d",&p1.x,&p1.y);
        return p1;
    }
    
    bool fun(int i,int j,int k,int m)
    {
        int area1,area2,area3,area4,sum;
        area1=AbsCross(p[j]-p[i],p[k]-p[i]);
        area2=AbsCross(p[j]-p[i],p[m]-p[i]);
        area3=AbsCross(p[k]-p[i],p[m]-p[i]);
        area4=AbsCross(p[k]-p[j],p[m]-p[j]);
        sum=area2+area3+area4;
        if(sum!=area1) return true;
        return false;
    }
    
    bool is_ok(int i,int j,int k,int m)
    {
        if(!fun(i,j,k,m)) return false;
        if(!fun(i,j,m,k)) return false;
        if(!fun(i,k,m,j)) return false;
        if(!fun(j,k,m,i)) return false;
        return true;
    }
    
    int main()
    {
        int i,j,k,m,n,T,Icase,ans;
        scanf("%d",&T);
        for(Icase=1;Icase<=T;Icase++)
        {
            ans=0;
            scanf("%d",&n);
            for(i=0;i<n;i++) p[i]=read_point();
            for(i=0;i<n-3;i++)
            {
                for(j=i+1;j<n-2;j++)
                {
                    for(k=j+1;k<n-1;k++)
                    {
                        for(m=k+1;m<n;m++)
                        {
                            if(is_ok(i,j,k,m))
                                ans++;
                        }
                    }
                }
            }
            printf("Case %d: %d
    ",Icase,ans);
        }
        return 0;
    }
  • 相关阅读:
    第二章 Flask——Flask中的request
    第一章 Flask——Flask简介
    第四章 Linux——Nginx环境部署指南
    众测平台
    jmeter进阶
    adb命令对app进行测试
    众测平台
    selenium
    java基础知识
    接口测试工具对比
  • 原文地址:https://www.cnblogs.com/xiong-/p/3601161.html
Copyright © 2011-2022 走看看