2020牛客暑期多校训练营(第三场) Operation Love

传送门:Operation Love

更好的阅读体验orABCFL题解:https://www.cnblogs.com/lilibuxiangtle/p/13336652.html

题意:t组测试,每次测试按顺时针或逆时针给20个点,是一个手的形状,问是左手还是右手。

题解:这个题可以用凸包解,板子求出凸包的所有点记录下来,然后求一下长度为6的边(即大拇指)的下一条边是不是底下长度为9的边。是的话就是右手,否则为左手。但是,这个题他卡精度,两个边长相等判断的时候要用fabs(d1,d2)<1e-5,比1e-5更大一些也可以,小的话会wa,wa到哭。

#include
using namespace std;

struct node
{
    double x,y;
}p[100],s[100];

double xx,yy;

double cross(node a,node b,node c)
{
    return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
}

double dis(node a,node b)
{
    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}

int cmp1(node a,node b)
{
    if(a.y==b.y) return a.x>t;
    while(t--){
        memset(p,0,sizeof(p));
        memset(s,0,sizeof(s));
        int n=20;
        for(int i=0;i>p[i].x>>p[i].y;
        }
        sort(p,p+n,cmp1);
        xx=p[0].x,yy=p[0].y;
        sort(p+1,p+n,cmp2);
        s[0]=p[0],s[1]=p[1];
        int top=1;
        for(int i=2;i

 

ps:因为同步到csdn的代码实丑,就不搞显示行号了。

 

你可能感兴趣的:(2020牛客暑期多校训练营(第三场) Operation Love)