栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

51nod3102 小明爱平行四边形

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

51nod3102 小明爱平行四边形

3102 小明爱平行四边形

小明非常喜欢平行四边形,有一天他得到了一些在二维平面内的点,现在小明想要知道从这些点里面有多少种挑法使得挑的这四个点可以组成平行四边形,保证不存在三个点在一条直线上,但是小明现在作业太多了,没有时间做这个,聪明的你可以帮助小明解决这个问题吗?

输入
第一行输入一个整数n(1 <= n <= 1000)
接下来n行,每行有两个整数,代表这个点的坐标(-10000<=坐标<=10000)
输出
输出可以组成平行四边形的方案数。
数据范围
对于10%的数据,1 <= n <= 8
对于50%的数据,1 <= n <= 1000
对于100%的数据,1 <= n <= 1000
输入样例
4
0 0
0 1
1 0
1 1
输出样例
1
样例解释

 解析:

因为没有三个点在一条直线上的情况,所以我们只需要根据任意两个点相同中点的个数进行计算即可,时间复杂度为O(n^2)。

放代码:

#include
#include
#include
#include 
using namespace std;
struct lkq
{
    int x;
    int y;
}p[1005];
struct lkq s[1005*1005];
struct lkq mind(struct lkq a,struct lkq b)
{
    struct lkq mind;
    mind.x=(a.x+b.x);
    mind.y=(a.y+b.y);
    return mind;
}
bool cmp(struct lkq a,struct lkq b)
{
    if(a.x==b.x)
        return a.y 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号