zoukankan      html  css  js  c++  java
  • CF 13B Letter A

    计算几何;

    这是我见过评测点最少的(CF)题,如图:

    0.0.1.png

    题意

    根据题意

    判断所给的三条线段是否可以构成一个('A'),(值得注意的是题目给出的第三条边的两个顶点不一定在第一和第二两条线段上)

    Idea

    于是我们有了以下三个判断程序:

    ( ext{1.判断是否共线})

    inline bool gong(int a,int b,int c,int d,int e,int f){
    //判断是否在三点是否共线
    	if((f-b)*(c-a)==(d-b)*(e-a)) return 1;
    	return 0;
    }
    

    ( ext{2.判断是否在0—90之间})

    inline bool jia(int x,int y,int a,int b,int c,int d){
    //判断两线段的夹角是否在0~90之间
    	if((a-x)*(c-x)+(b-y)*(d-y)<0) return 0;
    	return 1;
    }
    

    ( ext{3.判断分割的线段 长/段<1/4})

    inline bool dis(int x,int y,int m,int n,int a,int b){
    //判断分割的线段是否 长/短<0.25
    	if(x!=a) if(a>x){
    		if((a-x)*5<(m-x)) return 0;
    		if((a-x)*5>(m-x)*4) return 0;
    		return 1;
    	}
    	else{
    		if((x-a)*5<(x-m)) return 0;
    		if((x-a)*5>(x-m)*4) return 0;
    		return 1;
    	}
    	else if(b>y){
    		if((b-y)*5<(n-y)) return 0;
    		if((b-y)*5>(n-y)*4) return 0;
    		return 1;
    	}
    	else{
    		if((y-b)*5<(y-n)) return 0;
    		if((y-b)*5>(y-n)*4) return 0;
    		return 1;
    	}
    }
    

    模拟过程如下

    for(int i=0;i<2;i++)
    		for(int j=i+1;j<3;j++){
    			if(a[i].x==a[j].x&&a[i].y==a[j].y){
    				x=a[i].x; y=a[i].y;
    				m=a[i].z; n=a[i].zz;
    				p=a[j].z; q=a[j].zz;
    				tot1=i; tot2=j;
    			}
    			else if(a[i].x==a[j].z&&a[i].y==a[j].zz){
    				x=a[i].x; y=a[i].y;
    				m=a[i].z; n=a[i].zz;
    				p=a[j].x; q=a[j].y;
    				tot1=i; tot2=j;
    			}
    			else if(a[i].z==a[j].z&&a[i].zz==a[j].zz){
    				x=a[i].z; y=a[i].zz;
    				m=a[i].x; n=a[i].y;
    				p=a[j].x; q=a[j].y;
    				tot1=i; tot2=j;
    			}
    			else if(a[i].z==a[j].x&&a[i].zz==a[j].y){
    				x=a[i].z; y=a[i].zz;
    				m=a[i].x; n=a[i].y;
    				p=a[j].z; q=a[j].zz;
    				tot1=i; tot2=j;
    			}
    		}
    

    Code

    没有

  • 相关阅读:
    [51nod1299]监狱逃离
    [51nod1206]Picture
    noi 2016 游记
    [Codeforces 696D] Legen...
    [bzoj2574] [Poi1999]Store-Keeper
    [bzoj1227] [SDOI2009]虔诚的墓主人
    [bzoj3979] [WF2012]infiltration
    Docker
    SpringBoot实现登录
    SpringBoot第一次案例
  • 原文地址:https://www.cnblogs.com/cbyyc/p/11468531.html
Copyright © 2011-2022 走看看