zoukankan      html  css  js  c++  java
  • acm几何

    fzu 2231,N个点求构成的平行四边行个数。 题意简重点在优化上

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <cmath>
     6 #include <vector>
     7 #include <map>
     8 
     9 using namespace std;
    10 const int maxn = 510;
    11 
    12 struct node
    13 {
    14     int x,y;
    15 }point[maxn];
    16 
    17 vector<pair<double,double> >vec;
    18 
    19 int n;
    20 
    21 bool cmp(pair<double,double>a,pair<double,double>b)
    22 {
    23     if(a.first==b.first){
    24         return a.second<b.second;
    25     }
    26     return a.first<b.first;
    27 }
    28 
    29 int main()
    30 {
    31     int n;
    32     while(~scanf("%d",&n))
    33     {
    34         vec.clear();
    35         for(int i=0;i<n;i++)
    36         {
    37             scanf("%d%d",&point[i].x,&point[i].y);
    38         }
    39         for(int i=0;i<n;i++)
    40         {
    41             for(int j=i+1;j<n;j++)
    42             {
    43                 double xx=(point[i].x+point[j].x)/2.;
    44                 double yy=(point[i].y+point[j].y)/2.;
    45                 vec.push_back(make_pair(xx,yy));
    46             }
    47         }
    48         int ans=0;
    49         int num=1;
    50         sort(vec.begin(),vec.end(),cmp);
    51         for(int i=1;i<vec.size();i++){
    52             if(vec[i].first==vec[i-1].first&&vec[i].second==vec[i-1].second){
    53                 num++;
    54             }
    55             else{
    56                 ans+=(num*(num-1)/2);
    57                 num=1;
    58             }
    59         }
    60         printf("%d
    ",ans);
    61     }
    62 
    63     return 0;
    64 }
    View Code
  • 相关阅读:
    pwnable
    pwnable
    pwnable
    uva 11971
    uva 11582
    【数据结构】关于递归的几个例子
    【数据结构】快速排序
    【Python】range 倒序
    【数据结构】静态链表的实现(C语言描述)
    【数据结构】KMP 算法
  • 原文地址:https://www.cnblogs.com/Q1143316492/p/6940586.html
Copyright © 2011-2022 走看看