题目描述

给定平面上N个点,你需要计算以其中4个点为顶点的正方形的个数。注意这里的正方形边不一定需要和坐标轴平行。

输入输出格式

输入格式:

第一行一个数X,以下N个点的坐标。

【数据规模】

对于20%的数据,满足1≤N≤20;

对于100%的数据,满足1≤N≤500; -50≤X[i],Y[i]≤50,点不会重叠。

输出格式:

一个数表示正方形的个数。

输入输出样例

输入样例#1: 复制

7
0 0
0 1
1 0
1 1
1 2
2 1
2 2
输出样例#1: 复制

3
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 510
using namespace std;
int n,ans;
int vis[][];
struct nond{
int x,y;
}v[MAXN];
bool work(int i,int j){
int dx=(v[i].x+v[j].x)/,dy=(v[i].y+v[j].y)/;
int x1=dx-(dy-v[i].y),y1=dy+(dx-v[i].x);
int x2=dx+(dy-v[i].y),y2=dy-(dx-v[i].x);
if(x1<||y1<||x2<||y2<) return false;
if(vis[x1][y1]&&vis[x2][y2]) return true;
return false;
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d%d",&v[i].x,&v[i].y);
v[i].x+=;v[i].y+=;
v[i].x*=;v[i].y*=;
vis[v[i].x][v[i].y]=;
}
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
if(work(i,j)) ans++;
cout<<ans/;
}

P1665 正方形计数的更多相关文章

  1. 《程序设计中的组合数学》——polya计数

    我们在高中的组合数学中常常会碰到有关涂色的问题,例如:用红蓝两种颜色给正方形的四个顶点涂色,会有几种不同的方案.在当时,我们下意识的认为,正方形的四个顶点是各不相同的,即正方形是固定的.而实际上我们知 ...

  2. Polya计数

    Let it Bead Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5365   Accepted: 3585 Descr ...

  3. 组合数学及其应用——polya计数

    在处理类似下面的问题中,一般的计数方法会出现问题:假如你要用红.蓝两种颜色给一个正四面体的四个顶点着色,试问存在多少种不同的着色方案? 在高中我们常用的方法是模拟涂色过程,分情况讨论,然后基于分步乘法 ...

  4. bzoj1047理想的正方形

    题目链接 纪念又双叒叕的一道暴力碾标算的题 我们考虑纯暴力 #include<iostream> #include<cstdio> #include<algorithm& ...

  5. FJWC2019 子图 (三元环计数、四元环计数)

    给定 n 个点和 m 条边的一张图和一个值 k ,求图中边数为 k 的联通子图个数 mod 1e9+7. \(n \le 10^5, m \le 2 \times 10^5, 1 \le k \le ...

  6. [ACM] hdu 3923 Invoker (Poyla计数,高速幂运算,扩展欧几里得或费马小定理)

    Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael ...

  7. 计数排序(counting-sort)——算法导论(9)

    1. 比较排序算法的下界 (1) 比较排序     到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界.   ...

  8. Objective-C内存管理之引用计数

    初学者在学习Objective-c的时候,很容易在内存管理这一部分陷入混乱状态,很大一部分原因是没有弄清楚引用计数的原理,搞不明白对象的引用数量,这样就当然无法彻底释放对象的内存了,苹果官方文档在内存 ...

  9. 最小生成树计数 bzoj 1016

    最小生成树计数 (1s 128M) award [问题描述] 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一 ...

随机推荐

  1. 微信小程序组件解读和分析:十二、picker滚动选择器

    picker滚动选择器组件说明: picker: 滚动选择器,现支持三种选择器,通过mode属性来区分, 分别是普通选择器(mode = selector),时间选择器(mode = time),日期 ...

  2. 大众点评APP分析随笔

    移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...

  3. Python 保留n位小数

    输出a, b 且保留三位小数 a = 2.3456 b = 2.0000 三种方法: round(a, 3)('%.3f' % a)Decimal(a).quantize(Decimal('0.000 ...

  4. Java 类执行顺序

    1.如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块2.如果类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块3.将类的成员赋予初值(原始类型的成员的值为规定值,例 ...

  5. Java IO(四--字符流基本使用

    在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { ...

  6. html嵌入pdf && html嵌入多媒体文件,word,flash,pdf,音视频

    <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="1000" hei ...

  7. Syslinux编译环境配置简要步骤

    由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1.  vmware ...

  8. 变量加.self

    self相当于java里面的this,表示类的对象本身.加个self.是为了调用对应的set方法,如果不加,就不调用,不掉用就会造成引用计数的retainCount不加一,不加一就会被直接释放,结果就 ...

  9. iframe天气预报

    <iframe style="float: right;" width="420" scrolling="no" height=&qu ...

  10. Chrome插件:本地程序实现验证码破解(浏览器与本地进程通信)

    利用chrome调用本地程序破解图片验证码background.js var port = null, tabId, fname = "vcode.chrome.v1.item.01&quo ...