• Q


    Desciption

    Consider a set of n points in a 2-D plane with integer coordinates. There are various ways of measuring distance between two points such as Euclidean , Manhattan , Chebyshev distance. These distances have important application , one of which is chess.

    Consider that the ith point is located at (xi , yi). We want to find the number of pairs(i, j) such that the Euclidean distance between the points i and j is equal to the Manhattan distance between the same two points, i.e. Euclidean distance(i, j) = Manhattan distance(i, j).

    √((xi − xj )^2 + (yi − yj )^2) - is called Euclidean distance

    | xi − xj | + | yi − yj | - is called Manhattan distance

    Note - All the n points given are considered different, even if they share the same coordinates.

    Input

    First line contains n, number of points in the plane Each of the following n lines contains two integers xi , yi

    Output

    Print the total number of such pairs.

    Example

    Input:
    3 
    1 1 
    7 5
    1 5
    Output:
    2 
    Input:
    6
    0 0
    0 1
    0 2
    -1 1
    0 1
    1 1
    Output:
    11
    解题思路:注意判断两个小数是否相等,一般采用作差法。如果两个小数的差值小于一个很小的精度,则视这两个小数相等。这题没给出n的范围,后台测试数据比较小,暴力O(n^2)水过。
    AC代码:
     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cmath>
     4 using namespace std;
     5 const int maxn=1e6+5;
     6 int n,m=0;double x[maxn],y[maxn];
     7 const double eps=1e-8;
     8 double Eulc(double a1,double b1,double a2,double b2){
     9     return sqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2));
    10 }
    11 double Manh(double a1,double b1,double a2,double b2){
    12     return abs(a1-a2)+abs(b1-b2);
    13 }
    14 int main(){
    15     cin>>n;
    16     for(int i=0;i<n;++i)cin>>x[i]>>y[i];
    17     for(int i=0;i<n-1;++i){
    18         for(int j=i+1;j<n;++j){
    19             if(abs(Eulc(x[i],y[i],x[j],y[j])-Manh(x[i],y[i],x[j],y[j]))<eps)m++;
    20         }
    21     }
    22     cout<<m<<endl;
    23     return 0;
    24 }
     
  • 相关阅读:
    pytorch的函数中的group参数的作用
    pytorch的函数中的dilation参数的作用
    resnet18全连接层改成卷积层
    Pytorch实现UNet例子学习
    MyEclipse中出现Address already in use:JVM_Bind:8080
    为SQL数据库创建登录名和密码
    集合体系
    排序算法及其java实现
    java泛型通配符?
    Arrays.asList的用法
  • 原文地址:https://www.cnblogs.com/acgoto/p/9315873.html
Copyright © 2020-2023  润新知