/**
题目:hdu6055 Regular polygon
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6055
题意:给定n个坐标(x,y)。x,y都是整数,求有多少个正多边形。因为点都是整数点,所以只可能是正四边形。
思路:
(x1,y2)(x2,y2)=》(x,y) = (x2-x1,y2-y1)
向量(x,y)逆时针旋转90度:(-y,x);那么可以得到垂直(x,y)的向量,并通过(x2,y2)获得以(x2,y2)为起点的向量终点(x2+(-y),y2+x);
然后继续旋转90度,(-x,-y);那么得到以(x2+(-y),y2+x)为起点的向量终点(x2+(-y)+(-x),y2+x+(-y));如果求出来的这两个点都存在,
那么这四个点可以构成正四边形。由于一个正四边形四条边,所以每个正四边形算了四次,最后/4即可。 */ #include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
using namespace std;
typedef pair<int,int> P;
typedef long long LL;
const int N = ;
const int mod = 1e9+;
const int INF = 0x3f3f3f3f;
int f[][];
struct node
{
int x, y;
}t[N];
void rotate(int &vx,int &vy)
{
int t = -vy;
vy = vx;
vx = t;
}
int solve(int i,int j)
{
int vx = t[j].x-t[i].x, vy = t[j].y-t[i].y;
rotate(vx,vy);
int x = t[j].x+vx, y = t[j].y+vy;
rotate(vx,vy);
int xx = x+vx, yy = y+vy;
if(x>||y>||xx>||yy>||x<||y<||xx<||yy<) return ;
return f[x][y]&&f[xx][yy];
}
int main(void)
{
int n;
while(scanf("%d",&n)==)
{
memset(f, , sizeof f);
for(int i = ; i <= n; i++){
scanf("%d%d",&t[i].x,&t[i].y);
t[i].x+=, t[i].y+=;
f[t[i].x][t[i].y] = ;
}
int ans = ;
for(int i = ; i <= n; i++){
for(int j = ; j <= n; j++){
if(i==j) continue;
ans += solve(i,j);
}
}
printf("%d\n",ans/);
}
return ;
}

hdu6055 Regular polygon 脑洞几何 给定n个坐标(x,y)。x,y都是整数,求有多少个正多边形。因为点都是整数点,所以只可能是正四边形。的更多相关文章

  1. HDU6055 Regular polygon(计算几何)

    Description On a two-dimensional plane, give you n integer points. Your task is to figure out how ma ...

  2. HDU 6055 Regular polygon

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

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

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

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

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

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

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

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

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

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

  9. LightOJ 1285 - Drawing Simple Polygon (几何,极角排序)

    1285 - Drawing Simple Polygon   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...

随机推荐

  1. datagrid MAC和VPNIP显示不出来,Time显示错误的问题

    之前出错时也没截图,大致说一下. 这是现在运行成功的界面: 开始时间界面出现的是时间是原始值,即1970年1月1日午夜以来的毫秒数,类似于这样:1523786314827 因为我这里是调用的函数读取m ...

  2. chkconfig 检查、设置系统的各种服务

    chkconfig 检查.设置系统的各种服务 学习了:http://man.linuxde.net/chkconfig chkconfig --add 某某服务

  3. activemq订阅发布模式(非持久订阅)

    生产者JMSProducer: package com.sun.test.aircraft.activemq.topic; import org.apache.activemq.ActiveMQCon ...

  4. Android_Activity知识点

    一:安卓的目录下面有两个文件夹,一个是assets一个是RES其中在resw文件夹放的所有东西都会在R文件夹中自动对应的生成了一个ID,那么在assets中我们可以放关于这个工程的任何文件. 二:dr ...

  5. 什么是Cookie。Cookie的原理介绍,Cookie的简单应用

    1 介绍:Cookies亦称Cookie .Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.Cookies是当你浏览某网站时,由Web服务 ...

  6. MPlayer源代码分析

    http://blog.csdn.net/leixiaohua1020/article/details/11885509 一.Mplayer支持的格式 MPlayer是一个LINUX下的视频播放器,它 ...

  7. 在LoadRunner中查找和替换字符串

    参考<Search & Replace function for LoadRunner>: http://ptfrontline.wordpress.com/2009/03/13/ ...

  8. Windows下如何安装 Composer

    如何安装 Composer Windows下如何安装 Composer 下载 Composer 安装前请务必确保已经正确安装了 PHP.打开命令行窗口并执行 php -v 查看是否正确输出版本号. 打 ...

  9. SVN 常见命令

    一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 下载地址:http ...

  10. C# 重载和默认参数(那种情况下使用更好)

    当你提供函数,外部因为要传入不同参数个数,重载会导致 外部if增加,  默认参数可以消除外部的if.当外部调用函数需要判断调用那个函数,根据调用次数增多 if跟着调用持续增多两种不同的调用 //重载 ...