LightOJ - 1058

题意:给定n个顶点和其坐标,问这n个顶点里挑四个能组成几个平行四边形

Sample Input

2

6

0 0

2 0

4 0

1 1

3 1

5 1

7

-2 -1

8 9

5 7

1 1

4 8

2 0

9 8

Sample Output

Case 1: 5

Case 2: 6

思路:

我过于愚蠢。 判断平行四边形最简单的形式就是对角线相互平分,所以只要找出中点相同的点对就可以了。

/**

**/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define eps 1e-8
typedef long long ll;
const double PI = acos(-1.0);
const int maxn = 1e6;
const int INF = 0x3f3f3f;
const ll linf = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9+7;
using namespace std;
int n;
struct node
{
    int x,y;
}p1[maxn+5],p2[maxn+5];
bool judge(int a, int b)
{
    if(p2[a].x == p2[b].x && p2[a].y == p2[b].y)
        return 1;
    return 0;
}
bool cmp(node a, node b)
{
    if(a.x==b.x)
        return a.y

 

你可能感兴趣的:(算法学习,基础算法)