zoukankan      html  css  js  c++  java
  • Magic Line(思维+计算几何问题)(2019牛客暑期多校训练营(第三场))

    示例:

    输入:

    1
    4
    0 1
    -1 0
    1 0
    0 -1

    输出:-1 999000000 1 -999000001

    题意:给定平面上一系列的点,求一条以(x1,y1),(x2,y2)两点表示的直线将平面分为包含点数量相等的两部分,其中直线不能穿过任何一点。

    思路:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 struct node
     4 {
     5     int x,y;
     6 };
     7 bool cmp(node p,node q)
     8 {
     9     if(p.x==q.x)return p.y<q.y;
    10     else return p.x<q.x;
    11 }
    12 node a[1020],b[1020];
    13 int main()
    14 {
    15     int T,n;
    16     scanf("%d",&T);
    17     while(T--)
    18     {
    19         scanf("%d",&n);
    20         for(int i=1; i<=n; i++)
    21         {
    22             scanf("%d%d",&a[i].x,&a[i].y);
    23         }
    24         sort(a+1,a+n+1,cmp);//直接对所有的线从左到右排序
    25         printf("%d %d %d %d
    ",a[n/2].x+1,a[n/2].y-999000000,a[n/2+1].x-1,a[n/2+1].y+999000000);
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    freak out用法
    kinda用法
    比较级与最高级
    issue用法
    invite用法
    yet用法
    follow用法
    get用法
    turn up&turn off&turn on用法
    关于document.lastModified属性
  • 原文地址:https://www.cnblogs.com/Aamir-Dan/p/11265258.html
Copyright © 2011-2022 走看看