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 }
  • 相关阅读:
    016 vue的组件通信
    015 vue组件中的数据
    014 vue的组件化开发
    013 vue的js中的高阶函数
    012 vue的v-model的使用
    011 vue的购书案例
    010 vue的过滤器的使用
    CF1519F
    CF1519E
    CF1517F
  • 原文地址:https://www.cnblogs.com/iat14/p/12289984.html
Copyright © 2011-2022 走看看