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

    题目链接

    我是演员来的,比赛时候发现了长度为6,9,8的边都是唯一的,那么就只要找到6,8相交的那个点,将图形平移到交点在原点处,然后根据另两个端点的象限进行分类讨论,结果WA了。。挂了两发后面也懒得写了=。=慢慢补吧。至今没想清楚坑点在哪里。赛后发现只要求一下叉积判断正负就可以了。。几何题好久没写是真的不太行QAQ。

    #include <bits/stdc++.h>
    using namespace std;
    const double eps=1e-5;
    struct Point{
        double x,y;
    }p[50];
    double dist(Point a,Point b){
        return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
    }
    int main(){
        int t;cin>>t;
        while(t--){
            for(int i=0;i<20;i++){
                cin>>p[i].x>>p[i].y;
            }
            for(int i=0;i<20;i++){
                if(fabs(dist(p[i],p[(i+1)%20])-9)<=eps&&fabs(dist(p[(i+1)%20],p[(i+2)%20])-8)<=eps){
                    reverse(p,p+20);
                    break;
                }
            }
            bool flag;
            for(int i=0;i<20;i++){
                if(fabs(dist(p[i],p[(i+1)%20])-9)<=eps){
                    Point a,b;
                    a.x=p[i].x-p[(i+1)%20].x;
                    a.y=p[i].y-p[(i+1)%20].y;
                    b.x=p[(i+2)%20].x-p[(i+1)%20].x;
                    b.y=p[(i+2)%20].y-p[(i+1)%20].y;
                    flag = a.x * b.y - a.y * b.x > 0;
                }
            }
            puts(!flag?"left":"right");
        }
        return 0;
    }
    
  • 相关阅读:
    centos配置WordPress(Apache+mysql+php)
    sublime text3配置Python2、Python3的编译环境
    Python3——字典
    Python3基础——函数
    Python3基础——递归
    Python3基础——字符串类型
    activiti会签直接写死人员
    delete执行速度优化
    C盘空间满了怎么办
    python运算符
  • 原文地址:https://www.cnblogs.com/charles1999/p/13336853.html
Copyright © 2011-2022 走看看