zoukankan      html  css  js  c++  java
  • C Operation Love(2020牛客暑期多校训练营(第三场))(计算几何)

    传送门
    img
    img
    题目大意:顺时针或逆时针输入手掌上的20个坐标,判断是左手掌还是右手掌。数据范围[-1000.000,1000.000]

    题解:发现大拇指、小拇指和最底下的边的长度是唯一的,根据长度唯一找到大拇指上面和下面的点以及小拇指下面的点。运用叉积判断线段的走向,因为大拇指永远在底下那条边的右边。
    叉积

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const double eps=1e-2;
    int T;
    
    double X[20],Y[20];
    
    struct Point
    {
    	double x,y;
    }p[4];
    
    double dis(int a,int b)
    {
    	return (X[a]-X[b])*(X[a]-X[b])+(Y[a]-Y[b])*(Y[a]-Y[b]);
    } 
    
    void Find_Point()
    {
    	for(int i=0;i<20;i++)
    	{
    		int pre=(i-1+20)%20;
    		int suf=(i+1)%20;
    		if(fabs(dis(i,pre)-1.0)<=eps&&fabs(dis(i,suf)-36.0)<=eps) p[1].x=X[i],p[1].y=Y[i];
    		if(fabs(dis(i,suf)-1.0)<=eps&&fabs(dis(i,pre)-36.0)<=eps) p[1].x=X[i],p[1].y=Y[i];
    		if(fabs(dis(i,pre)-36.0)<=eps&&fabs(dis(i,suf)-81.0)<=eps) p[2].x=X[i],p[2].y=Y[i];
    		if(fabs(dis(i,suf)-36.0)<=eps&&fabs(dis(i,pre)-81.0)<=eps) p[2].x=X[i],p[2].y=Y[i];
    		if(fabs(dis(i,pre)-81.0)<=eps&&fabs(dis(i,suf)-64.0)<=eps) p[3].x=X[i],p[3].y=Y[i];
    		if(fabs(dis(i,suf)-81.0)<=eps&&fabs(dis(i,pre)-64.0)<=eps) p[3].x=X[i],p[3].y=Y[i];
    	}	
    }
    
    void slove_Chaji()
    {
    	Point ca,ba;
    	ca.x=p[1].x-p[3].x;ca.y=p[1].y-p[3].y;
    	ba.x=p[2].x-p[3].x;ba.y=p[2].y-p[3].y;
    	int p;
    	p=ca.x*ba.y-ba.x*ca.y;
    	if(p>0) cout<<"right
    ";
    	else cout<<"left
    "; 
    }
    
    int main()
    {
    	cin>>T;
    	while(T--)
    	{
    		for(int i=0;i<20;i++)
    		{
    			cin>>X[i]>>Y[i];
    		}
    		Find_Point();
    		slove_Chaji();
    	} 
    	return 0;
    }
    
    
  • 相关阅读:
    Linux内核中的红黑树
    研究UEVENT相关东西,看到2篇优秀的博文,转载与此
    Nor Nand OneNand
    Linux设备模型(总线、设备、驱动程序和类)
    linux驱动的入口函数module_init的加载和释放(转)
    hwclock(Linux)
    Linux块设备驱动
    pdflush内核线程池及其中隐含的竞争
    Nand Flash与Nor Flash
    linux内核I2C体系结构(注意结构体原型)
  • 原文地址:https://www.cnblogs.com/zzyh/p/13374025.html
Copyright © 2011-2022 走看看