题意略。

思路:要你找出所有正多边形,其实是唬人的,整点的正多边形只有正方形,具体证明可以参考     2017国家队论文集-《正多边形》-杨景钦

详见代码:

#include<bits/stdc++.h>
#define maxn 505
//#define LOCAL
using namespace std; struct Point{
int x,y;
Point(int a = ,int b = ){
x = a,y = b;
}
Point operator+ (const Point& p){
return Point(x + p.x,y + p.y);
}
Point operator- (const Point& p){
return Point(x - p.x,y - p.y);
}
bool operator== (const Point& p) const{
return x == p.x && y == p.y;
}
bool operator< (const Point& p) const{
if(x != p.x) return x < p.x;
return y < p.y;
}
}; struct line{
Point s,t;
line(){}
line(Point a,Point b){
s = a,t = b;
}
bool operator< (const line& l) const{
if(!(s == l.s)) return s < l.s;
return t < l.t;
}
}; set<line> st;
Point store[maxn * maxn]; int main(){
#ifdef LOCAL
freopen("kkk.txt","r",stdin);
freopen("kkkout.txt","w",stdout);
#endif
int n;
while(scanf("%d",&n) == ){
st.clear();
for(int i = ;i < n;++i)
scanf("%d%d",&store[i].x,&store[i].y);
sort(store,store + n);
for(int i = ;i < n;++i){
for(int j = i + ;j < n;++j){
st.insert(line(store[i],store[j]));
}
}
int ans = ;
for(int i = ;i < n;++i){
for(int j = i + ;j < n;++j){
Point d = store[j] - store[i];
Point temp(d.y,-d.x);
Point s = store[i] + temp;
Point t = s + d;
if(st.count(line(s,t))) ++ans;
}
}
printf("%d\n",ans / );
}
return ;
}

HDU 6055的更多相关文章

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

    /* HDU 6055 - Regular polygon [ 分析,枚举 ] 题意: 给出 x,y 都在 [-100, +100] 范围内的 N 个整点,问组成的正多边形的数目是多少 N <= ...

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

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

  3. HDU 6055 Regular polygon

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

  4. HDU 6055 17多校 Regular polygon(计算几何)

    Problem Description On a two-dimensional plane, give you n integer points. Your task is to figure ou ...

  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. HDU 6055 Regular polygon (暴力)

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

  7. 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 ...

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

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

  9. 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 ...

随机推荐

  1. Java EE API

    百度云:链接:http://pan.baidu.com/s/1nvTlMLb     密码:vulq 官方下载网址:http://www.oracle.com/technetwork/java/jav ...

  2. C# 不同访问符的访问级别

    public----成员可以由任何代码访问. private----成员只能由类中的代码访问(如果没有使用任何关键字,就默认使用这个关键字). internal----成员只能由定义它的项目(程序集) ...

  3. Android利用Handler异步获取子线程中的产生的值

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     近段时间有一个需求:在线获取图片并且显示在界面 ...

  4. 执行shell脚本的四种方式

    这篇文章主要介绍了Linux中执行shell脚本的4种方法,即总结在Linux中运行shell脚本的4种方法. 前提:bash shell 脚本的方法有多种,假设我们编写好的shell脚本的文件名为h ...

  5. RobotFramework_3.SeleniumLibrary操作(一)

    RobotFramework_3.SeleniumLibrary操作(一) *:first-child { margin-top: 0 !important; } body>*:last-chi ...

  6. java相关的一些资源

    http://www.cnblogs.com/best/p/5876559.html#_label1

  7. JS-数组的定义

  8. 七牛云qshell工具定时备份空间文件到本地

    qshell 是利用七牛文档上公开的 API实现的一个方便开发者测试和使用七牛API服务的命令行工具,使用该工具可以实现很多的功能,今天就分享一下利用qshell定时备份空间文件到本地 1.下载qsh ...

  9. Windows 下配置 Vagrant 环境

    Vagrant是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境.它使用 Oracle 的开源VirtualBox虚拟化系统. Vagrant 在快速搭建开发环境方面是很赞的,试想一个团队中, ...

  10. 记一次织梦cms渗透测试

    记一次织梦cms渗透测试 0x01 前言 本次测试的整个流程:枚举用户名-针对性暴破-登录后台-后台编辑php文件getshell. 0x02 过程 1.登录功能模块存在用户名枚举缺陷,利用此权限先枚 ...