HDU 6055 - Regular polygon | 2017 Multi-University Training Contest 2
/*
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的更多相关文章
- 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 ...
- hdu 6055 : Regular polygon (2017 多校第二场 1011) 【计算几何】
题目链接 有个结论: 平面坐标系上,坐标为整数的情况下,n个点组成正n边形时,只可能组成正方形. 然后根据这个结论来做. 我是先把所有点按照 x为第一关键字,y为第二关键字 排序,然后枚举向量 (p[ ...
- 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 ...
- HDU 6055 Regular polygon
Regular polygon Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 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 ...
- 【2017多校训练2+计算几何+板】HDU 6055 Regular polygon
http://acm.hdu.edu.cn/showproblem.php?pid=6055 [题意] 给定n个格点,问有多少个正多边形 [思路] 因为是格点,只可能是正方形 枚举正方形的对角线,因为 ...
- HDU 6055 Regular polygon (暴力)
题意,二维平面上给N个整数点,问能构成多少个不同的正多边形. 析:容易得知只有正四边形可以使得所有的顶点为整数点.所以只要枚举两个点,然后去查找另外两个点就好. 代码如下: #pragma comme ...
- HDU 6170 - Two strings | 2017 ZJUT Multi-University Training 9
/* HDU 6170 - Two strings [ DP ] | 2017 ZJUT Multi-University Training 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 ...
随机推荐
- django F与Q查询 事务 only与defer
F与Q 查询 class Product(models.Model): name = models.CharField(max_length=32) #都是类实例化出来的对象 price = mode ...
- Lua 打印 table (支持双向引用的table)
网上搜了一下,挺多打印table的方案,基本思路都是一层一层递归遍历table.(我就是参考这种思路做的^_^) 但大部分都不支持双向引用的打印.我所指的双向引用,就是a引用b, b又直接或间接引用a ...
- C#求1-100的质数,100-1000的水仙花数,1-100所有的平方和平方平方根
//你们的鼓励是我最大的动力 大家可以多留言评论 在接下来很长一段时间我会从初级到高级每天更新 大家有想学习的内容也可以留言哦 //现在是我做C#老师的第28天,希望和大家一起努力 加油 using ...
- Hadoop 3相对于hadoop 2的新特性
相对于之前主要生产发布版本Hadoop 2,Apache Hadoop 3整合许多重要的增强功能. Hadoop 3是一个可用版本,提供了稳定性和高质量的API,可以用于实际的产品开发.下面简要介绍一 ...
- mac 下安装mysql
1.安装mysql 使用 brew 进行安装: brew install mysql 2.安装完成: 3.如果开机启动服务 执行:brew services start mysql 否则:mysql. ...
- ubuntu 共享WIFI并分享主机的代理服务
背景是这样的: 公司内的主机访问外网需要通过一个HTTP代理服务器,主机ubuntu共享wifi给手机使用的时候需要在手机上配置一个代理才能访问互联网. 我觉得这样比较麻烦,所以想在主机上直接把共享w ...
- 5、SVN 权限管理
5.SVN 权限管理 5.1版本库中三个对应的配置文件 版本库配置文件目录 /var/svn/repository/pro_oa/conf svnserve.conf 文件,如下修改: 19# ano ...
- python之时间日期datetime
相比于time模块,datetime模块的接口则更直观.更容易调用datetime模块定义了以下几个类: datetime.date():表示日期的类.常用的属性是year,month,day:dat ...
- textwrap:格式化文本段落
介绍 需要美观打印(pretty-printing)的情况下,可以使用textwrap模块格式化要输出的文本. 它提供了很多文本编辑器和字符处理器中都有的段落自动换行或填充特性 填充段落 import ...
- SQL语句复习【专题五】
SQL语句复习[专题五] 单行子查询:只会得到一个结果的子查询[子查询的内容必须放在小括号中.在查询语句中的查询语句 ]--查询所有比 CLARK 员工 工资高的员工--1.先查询 CLARK 员工的 ...