hdu 6055 : Regular polygon (2017 多校第二场 1011) 【计算几何】
有个结论: 平面坐标系上,坐标为整数的情况下,n个点组成正n边形时,只可能组成正方形。
然后根据这个结论来做。
我是先把所有点按照 x为第一关键字,y为第二关键字 排序,然后枚举向量 (p[i]->p[j]) (j>i),只判断这个向量左侧可否存在两个点与它一起构成一个正方形。这样算的结果是,计数每个正方形时,它的靠右和靠下的两条边都会为ans贡献一个单位,所以最后ans要除以2。
#include<bits/stdc++.h>
using namespace std; int n;
int vis[][]; struct point
{
int x,y;
bool operator<(const point& rhs)const
{
return x<rhs.x || x==rhs.x&&y<rhs.y;
}
}p[]; int main()
{
while(~scanf("%d",&n))
{
memset(vis,,sizeof(vis));
int ans=;
for(int i=;i<n;i++)
{
scanf("%d%d",&p[i].x,&p[i].y);
p[i].x+=,p[i].y+=;
vis[p[i].x][p[i].y]=;
}
sort(p,p+n);
for(int i=;i<n;i++)
for(int j=i+;j<n;j++)
{
point a=p[i],b=p[j];
int dx=b.x-a.x;
int dy=b.y-a.y;
point c,d;
c.x=a.x-dy,c.y=a.y+dx;
d.x=b.x-dy,d.y=b.y+dx;
if(vis[c.x][c.y]&&vis[d.x][d.y]) ans++;
}
printf("%d\n",ans/);
}
}
hdu 6055 : Regular polygon (2017 多校第二场 1011) 【计算几何】的更多相关文章
- HDU 6055 - Regular polygon  |  2017 Multi-University Training Contest 2
		/* HDU 6055 - Regular polygon [ 分析,枚举 ] 题意: 给出 x,y 都在 [-100, +100] 范围内的 N 个整点,问组成的正多边形的数目是多少 N <= ... 
- 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 6047: Maximum Sequence (2017 多校第二场 1003)【贪心】
		题目链接 可以贪心写,先把b数组按从小到大的顺序排个序,根据b[i]的值来产生a[n+i] 借助一个c数组,c[i]记录,j从i到n,a[j]-j的最大值,再加上一个实时更新的变量ma,记录从n+1到 ... 
- hdu 6050: Funny Function (2017 多校第二场 1006) 【找规律】
		题目链接 暴力打个表找下规律就好了,比赛时看出规律来了倒是,然而看这道题看得太晚了,而且高中的那些数列相关的技巧生疏了好多,然后推公式就比较慢..其实还是自身菜啊.. 公式是 #include< ... 
- 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 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 ... 
- 【2017多校训练2+计算几何+板】HDU 6055 Regular polygon
		http://acm.hdu.edu.cn/showproblem.php?pid=6055 [题意] 给定n个格点,问有多少个正多边形 [思路] 因为是格点,只可能是正方形 枚举正方形的对角线,因为 ... 
- HDU 6055 Regular polygon (暴力)
		题意,二维平面上给N个整数点,问能构成多少个不同的正多边形. 析:容易得知只有正四边形可以使得所有的顶点为整数点.所以只要枚举两个点,然后去查找另外两个点就好. 代码如下: #pragma comme ... 
随机推荐
- Java实体类之间的映射(一对多关系)
			通过栗子,一个人可以有多辆汽车 定义人 这个类 人可以有很多辆汽车,类中车属性用数组 class Person{ private String name; private String phone ... 
- Redis 简介,安装,卸载
			一.Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ... 
- 【opencv使用笔记】一:Python版本安装与测试
			安装完opencv3.4.1并且Cmake后,发现Python不能import,又装了Python版本的opencv; 由于是在conda环境下安装,opencv-python-4.0.1.24,最终 ... 
- DEDECMS首页,列表页调用自定义图片字段,只显示图片地址
			第一步:将自定义字段“图片”类型改为“图片(仅地址)”类型. 第二部:在{dede:arclist row='1' addfields='stu' titlelen='24' orderby='pub ... 
- Java JDK安装教程以及JDK多版本间快速切换配置
			原本想自己写一篇,结果在网上发现一篇写的特别好的博文,大家可以去原网址围观浏览加点赞, 只是搬运工+迷弟. 原文地址:https://blog.csdn.net/qq_38916130/article ... 
- JAVA AOP面向切面编程与动态代理
			1.静态代理和动态代理的概念: 在我的另一篇博文:Java 静态代理和动态代理 中有讲到,这里就不做赘述了. JDK动态代理它的好处理是可以为我们生成任何一个接口的代理类,并将需要增强的方法织入到 ... 
- C# DropDownList绑定添加新数据的三种方法
			一.在前台手动绑定 <asp:DropDownList ID="DropDownList1" runat="server"> <asp: ... 
- heaplog
			#ifdef _DEBUG #include <stdio.h> #include <stdlib.h> #include <string.h> #define _ ... 
- 如何通过脚本实现显示版本号、CPU、硬盘和内存条大小
			COLOR="\033[1;$[RANDOM%7+31]m" COLOR1="\033[1;$[RANDOM%7+31]m"COLOR2="\ ... 
- python之设置windows背景图片
			#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'jiangwenwen' from PIL import Image impo ... 
