zoukankan      html  css  js  c++  java
  • hdu 5365 判断正方形

    题意:给出n个点(坐标均为整数),判断可以构成多少个正三角形、正四边形、正五边形、正六边形。

    官方题解:地球人都知道整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可。假如你不是地球人,那么即使暴力枚举正三边形和稍微不那么暴力地找正五边形和正六边形也是可以通过的(反正找不到)。

    ......看来我不是地球人......

    至于判断正方形,只要判断四边相等和一条对角线是边长的根号2倍就行了。

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 using namespace std;
     5 
     6 const int N = 20;
     7 
     8 struct Point 
     9 {
    10     int x, y;
    11 } point[N];
    12 
    13 int square( int x )
    14 {
    15     return x * x;
    16 }
    17 
    18 int dis2( int a, int b )
    19 {
    20     return square( point[a].x - point[b].x ) + square( point[a].y - point[b].y );
    21 }
    22 
    23 int judge( int a, int b, int c, int d )
    24 {
    25     int dd = dis2( a, c );
    26     if ( dis2( a, b ) * 2 == dd && dis2( b, c ) * 2 == dd
    27       && dis2( c, d ) * 2 == dd && dis2( d, a ) * 2 == dd ) return 1;
    28     return 0;
    29 }
    30 
    31 int main ()
    32 {
    33     int n;
    34     while ( scanf("%d", &n) != EOF )
    35     {
    36         for ( int i = 0; i < n; i++ )
    37         {
    38             scanf("%d%d", &point[i].x, &point[i].y);
    39         }
    40         int ans = 0;
    41         for ( int i = 0; i < n; i++ )
    42         {
    43             for ( int j = 0; j < n; j++ )
    44             {
    45                 if ( i == j ) continue;
    46                 for ( int k = 0; k < n; k++ )
    47                 {
    48                     if ( i == k || j == k ) continue;
    49                     for ( int l = 0; l < n; l++ )
    50                     {
    51                         if ( i == l || j == l || k == l ) continue;
    52                         ans += judge( i, j, k, l );
    53                     }
    54                 }
    55             }
    56         }
    57         ans >>= 3;
    58         printf("%d
    ", ans);
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    centos 7 nginx 安装
    搭建Nuget.Server push时,"Failed to process request. 'Method Not Allowed'"
    Failed to create prime the NuGet cache
    Centos 7 安装 Visual stdio Code
    diskpart 格式化u盘 制作u盘启动盘方法
    sql server 2012 数据库日志文件过大,怎么缩小?
    浏览器同源政策及其规避方法
    redis底层数据结构--简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表
    php的闭包
    hash一致性算法
  • 原文地址:https://www.cnblogs.com/huoxiayu/p/4714733.html
Copyright © 2011-2022 走看看