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

     

     

     

     

     

     

     题意:输入是从任意一点出发顺时针或逆时针把20个点输入,然后这个手是可以移动和旋转的,不能缩放,然后判断是左手还是右手,左手输出left ,右手输出right.

    注意:这里由于输入是浮点数,所以那个sqrt后的值不为整数值

    代码:

    #include<iostream>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    const int maxn = 25;
    double x[maxn],y[maxn];
    double d[maxn];
    int main(){
        int t;
        cin>>t;
        while(t--){
            for(int i=1;i<=20;i++){
                scanf("%lf%lf",&x[i],&y[i]);
            }
            x[21]=x[1];
            y[21]=y[1];
            double tot=0;
            for(int i=1;i<=20;i++){
                d[i]=sqrt((x[i]-x[i+1])*(x[i]-x[i+1])+(y[i]-y[i+1])*(y[i]-y[i+1]));
                tot+=x[i]*y[i+1]-x[i+1]*y[i];
            }
            if(tot<0){
                reverse(d+1,d+21);//保证逆时针 
            }
            int a,b;
            for(int i=1;i<=20;i++){
                if(int(d[i]+0.5)==9)
                    a=i;
                if(int(d[i]+0.5)==8)
                    b = i;
                
            }
            int flag=0;
            if(a+1==b)
                flag=1;
            if(a==20&&b==1)//逆时针保证边长为9和边长为8的出现的先后顺序
                flag=1;
            if(flag) cout<<"right"<<endl;
            else cout<<"left"<<endl; 
        }
        return 0;
    } 
  • 相关阅读:
    自动删除几天前的备份集文件脚本 for windows
    Oracle备份脚本(数据泵)-Windows平台
    机器学习常用python包
    AI summary
    git 设置
    mystar01 nodejs MVC gulp 项目搭建
    electron搭建开发环境
    AI ubantu 环境安装
    xtrabackup原理
    xtrabackup 安装
  • 原文地址:https://www.cnblogs.com/lusiqi/p/13342166.html
Copyright © 2011-2022 走看看