/*
HDU 6055 - Regular polygon [ 分析,枚举 ]
题意:
给出 x,y 都在 [-100, +100] 范围内的 N 个整点,问组成的正多边形的数目是多少
N <= 500
分析:
分析可知,整点组成的正多边形只能是正方形
故枚举两个点,验证剩下两个点的位置 坑点: 由于点的范围是 [-100, +100],故经过计算得出的点的范围可能是 [-300,+300],注意越界 编码时长:46分钟(-1)
*/
#include <bits/stdc++.h>
using namespace std;
int n;
bool mp[1005][1005];
int ans;
int x[505], y[505];
void solve(int x1, int y1, int x2, int y2)
{
if (x1 > x2) swap(x1, x2), swap(y1, y2);
int x3, y3, x4, y4;
x3 = x1 - (y2-y1);
y3 = y1 + x2-x1;
x4 = x2 - (y2-y1);
y4 = y2 + x2-x1;
if (mp[x3][y3] && mp[x4][y4]) ans++;
x3 = x1 + y2-y1;
y3 = y1 - (x2-x1);
x4 = x2 + y2-y1;
y4 = y2 - (x2-x1); if (mp[x3][y3] && mp[x4][y4]) ans++;
}
int main()
{
while (~scanf("%d", &n))
{
memset(mp, 0, sizeof(mp));
for (int i = 1; i <= n; i++)
{
scanf("%d%d", &x[i], &y[i]);
x[i] += 500, y[i] += 500;
mp[x[i]][y[i]] = 1;
}
ans = 0;
for (int i = 1; i <= n; i++)
for (int j = i+1; j <= n; j++)
solve(x[i], y[i], x[j], y[j]);
printf("%d\n", ans/4);
}
}

  

HDU 6055 - Regular polygon | 2017 Multi-University Training Contest 2的更多相关文章

  1. HDU 6055 Regular polygon —— 2017 Multi-University Training 2

    Regular polygon Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  2. hdu 6055 : Regular polygon (2017 多校第二场 1011) 【计算几何】

    题目链接 有个结论: 平面坐标系上,坐标为整数的情况下,n个点组成正n边形时,只可能组成正方形. 然后根据这个结论来做. 我是先把所有点按照 x为第一关键字,y为第二关键字 排序,然后枚举向量 (p[ ...

  3. 2017 Multi-University Training Contest - Team 2 &hdu 6055 Regular polygon

    Regular polygon Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  4. HDU 6055 Regular polygon

    Regular polygon Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  5. 2017ACM暑期多校联合训练 - Team 2 1011 HDU 6055 Regular polygon (数学规律)

    题目链接 **Problem Description On a two-dimensional plane, give you n integer points. Your task is to fi ...

  6. 【2017多校训练2+计算几何+板】HDU 6055 Regular polygon

    http://acm.hdu.edu.cn/showproblem.php?pid=6055 [题意] 给定n个格点,问有多少个正多边形 [思路] 因为是格点,只可能是正方形 枚举正方形的对角线,因为 ...

  7. HDU 6055 Regular polygon (暴力)

    题意,二维平面上给N个整数点,问能构成多少个不同的正多边形. 析:容易得知只有正四边形可以使得所有的顶点为整数点.所以只要枚举两个点,然后去查找另外两个点就好. 代码如下: #pragma comme ...

  8. HDU 6170 - Two strings | 2017 ZJUT Multi-University Training 9

    /* HDU 6170 - Two strings [ DP ] | 2017 ZJUT Multi-University Training 9 题意: 定义*可以匹配任意长度,.可以匹配任意字符,问 ...

  9. hdu 6301 Distinct Values (2018 Multi-University Training Contest 1 1004)

    Distinct Values Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

随机推荐

  1. table+ajax加载数据

    //ajax加载notice $(function() { //${pageContext.request.contextPath}/ /** var res = [ {noticeTitle:'必答 ...

  2. X-UA-Compatibles

    今天在看京东网页代码的时候,发现了X-UA-Compatibles 这个元信息属性,不是很清楚,百度了一下,做下记录 X-UA-Compatible 属性是 IE 浏览器在 IE8 版本开始提供的一个 ...

  3. 【hash】珍珠

    [来源] https://loj.ac/problem/2427 [参考博客] LOJ#2427. 「POI2010」珍珠项链 Beads [题解]: 复杂度计算: 暴力枚举k每次计算是n/2+n/3 ...

  4. 怎样使用 v-on 指令?

    1. Vue 中的 v-on 指令用于绑定 dom 事件 的监听函数. 下面代码实现的是 点击更改文字颜色 的功能. <!DOCTYPE html> <html lang=" ...

  5. react中数据持久化缓存redux-persist

    一.安装redux-persist: npm install redux-persist --save 二..babelrc中增加redux-persist配置: "plugins" ...

  6. Scala学习八——继承

    一.本章要点 extends,final关键字和Java一样 重写方法时必须使用override 只有主构造器可以调用超类的构造器 可以重写字段 二.扩展类 Scala扩展类和Java一样(使用ext ...

  7. 实现JS数组传递

    //如果只是一维数组 var list = Request.Form.GetValues("diary[]");  public ContentResult TestHtmlTwo ...

  8. luogu题解 UVA11992 【Fast Matrix Operations】

    题目链接: https://www.luogu.org/problemnew/show/UVA11992 题目大意: 一个r*c的矩阵,一开始元素都是0,然后给你m次三种操作,分别是将一个子矩阵中所有 ...

  9. O030、Launch 和 shut off 操作详解

    参考https://www.cnblogs.com/CloudMan6/p/5460464.html   本节详细分析 instance launch 和 shut off 操作 ,以及如何在日志中快 ...

  10. IntelliJ IDEA 接口类跳转到实现类及实现类跳转到接口

    接口和实现类的互相跳转是使用IntelliJ IDEA过程中常用的操作,在此记录一下: 1.Service接口跳转到实现类 操作:在接口类的方法上使用快捷键Ctrl+Alt+B,或者点击下图所示位置 ...