zoukankan      html  css  js  c++  java
  • CF1300D-Aerodynamic 求点集是否中心对称

    题意没有太读懂...导致我没写完。

    就是按照顺时针给你一些点,问这些点是否中心对称。

    就用1和n/2+1,求一个中心点。然后看2和n/2+2,3和n/2+3...所求出的中心点是不是一个同一个就行了。

    注意n为奇数一定不行。

     1 #include <cstdio>
     2 #include <cmath>
     3 using namespace std;
     4 int n;
     5 double x[110000],y[110000],ax,ay;
     6 bool equ(double x,double y)
     7 {
     8     if (fabs(x - y) <= 0.0000000001)
     9         return true;
    10     return false;
    11 }
    12 int main()
    13 { 
    14     scanf("%d",&n);
    15     if (n & 1)
    16     {
    17         printf("NO
    ");
    18         return 0; 
    19     }
    20     for (int i = 1;i <= n;i++)
    21         scanf("%lf%lf",&x[i],&y[i]);
    22     ax = (x[1] + x[n / 2 + 1]) / 2.0;
    23     ay = (y[1] + y[n / 2 + 1]) / 2.0;
    24     for (int i = 2;i <= n / 2;i++)
    25         if (!equ(ax,(x[i] + x[n / 2 + i]) / 2.0) || !equ(ay,(y[i] + y[n / 2 + i]) / 2.0))
    26         {
    27             printf("NO
    ");
    28             return 0; 
    29         }
    30     printf("YES
    ");
    31     return 0;
    32 }
  • 相关阅读:
    HTML 笔记
    JavaScript 学习笔记
    对近期的一些总结
    【 Java 】手速手速~
    【 Java 】 简易交通灯
    【 Art 】小心心~
    scala 标识符案例
    scala 基础类型
    scala 类、字段、方法
    scala 列表
  • 原文地址:https://www.cnblogs.com/iat14/p/12289984.html
Copyright © 2011-2022 走看看