zoukankan      html  css  js  c++  java
  • D. Number of Parallelograms 解析(幾何)

    Codeforce 660 D. Number of Parallelograms 解析(幾何)

    今天我們來看看CF660D
    題目連結

    題目
    給你一些點,求有多少個平行四邊形。

    前言

    想法

    注意到,只要有兩個等長的平行邊,那我們就找到了一個平行四邊形了。
    所以只要用一個(map)紀錄每個線段出現的次數,且每次加入一個線段(我們枚舉線段)時,先把答案加上目前有多少等長平行線段,最後答案除以二就行了。

    程式碼:

    const int _n=2010;
    int t,n,x,y;
    vector<PII> ps;
    map<PII,int> cnt;
    ll ans;
    main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
      cin>>n;rep(i,0,n){cin>>x>>y;ps.pb({x,y});}
      rep(i,0,n-1)rep(j,i+1,n){
        PII v={ps[j].fi-ps[i].fi,ps[j].se-ps[i].se};
        if(v.fi<0)v.fi=-v.fi,v.se=-v.se;
        if(v.fi==0 and v.se<0)v.se=-v.se;
        ans+=cnt[v]; cnt[v]++;
      }cout<<ans/2<<'
    ';
      return 0;
    }
    

    標頭、模板請點Submission看
    Submission

  • 相关阅读:
    Title
    Title
    Title
    Title
    Title
    Title
    Title
    get和post两种表单提交方式的区别
    计算机网络体系结构补充内容
    计算机网络体系结构作业题整理-第十章答案
  • 原文地址:https://www.cnblogs.com/petjelinux/p/13734209.html
Copyright © 2011-2022 走看看