Educational Codeforces Round 11 D. Number of Parallelograms 【pair的使用】

来源:互联网 发布:山西省网络研修社区 编辑:程序博客网 时间:2024/05/16 17:28

平行四边形对角线两点连线的中点相同,利用这个性质可以快速计算。

#include<bits/stdc++.h>using namespace std;map<pair<int,int>,int>mp;int x[2048],y[2048];int main(){    int n,i,j;    long long ans;    scanf("%d",&n);    for(i=0;i<n;i++)        scanf("%d%d",&x[i],&y[i]);    mp.clear();    ans=0;    for(i=0;i<n;i++)        for(j=i+1;j<n;j++)    {        if(mp[make_pair(x[i]+x[j],y[i]+y[j])])            ans+=mp[make_pair(x[i]+x[j],y[i]+y[j])];        mp[make_pair(x[i]+x[j],y[i]+y[j])]++;    }    printf("%lld\n",ans);    return 0;}
0 0
原创粉丝点击