• Space Ant


    题目大意:给一些散列点然后初始点是坐标最下面最左面的点,然后只能往左走,求出来最多可以经过多少个点,把序号输出出来。
     
    分析:先求出来初始的点,然后不断排序找出来最近的凸点....复杂度是 n^2*log(n)。。。。不多点很少,所以随意玩。
     
    代码如下:
    =====================================================================================================================
    #include<stdio.h>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    
    const int MAXN = 107;
    const double EPS = 1e-8;
    
    struct Point
    {
        double x, y;
        int id;
        Point(double x=0, double y=0):x(x),y(y){}
        Point operator - (const Point &tmp) const{
            return Point(x-tmp.x, y-tmp.y);
        }
        double operator *(const Point &tmp) const{
            return x*tmp.x + y*tmp.y;
        }
        double operator ^(const Point &tmp) const{
            return x*tmp.y - y*tmp.x;
        }
    };
    double Dist(Point a, Point b)
    {
        return sqrt((a-b)*(a-b));
    }
    Point p[MAXN];
    int ki;
    
    bool cmp(Point a, Point b)
    {
        double t = (a-p[ki]) ^ (b-p[ki]);
    
        if(fabs(t) < EPS)
            return Dist(p[ki], a) < Dist(p[ki], b);
        return t > EPS;
    }
    
    int main()
    {
        int T;
    
        scanf("%d", &T);
    
        while(T--)
        {
            int i, N;
    
            scanf("%d", &N);
    
            for(int i=0; i<N; i++)
            {
                scanf("%d%lf%lf", &p[i].id, &p[i].x, &p[i].y);
                if(p[i].y < p[0].y || (p[i].y==p[0].y && p[i].x < p[0].x))
                    swap(p[i], p[0]);
            }
    
            ki = 0;
    
            for(i=1; i<N; i++, ki++)
            {
                sort(p+i, p+N, cmp);
            }
    
            printf("%d", N);
            for(i=0; i<N; i++)
                printf(" %d", p[i].id);
            printf("
    ");
        }
    
        return 0;
    }
  • 相关阅读:
    Go语言并发与并行学习笔记(一)
    Tomcat编码问题
    如何为Kafka集群选择合适的Partitions数量
    go局部变量的存储空间是堆还是栈?
    git的一个merge流程
    GO工程和包
    Go运行环境搭建(MacLinux)
    一些Shell命令
    python_17_数据运算
    python_15_os
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4794089.html
Copyright © 2020-2023  润新知