poj1696 Space Ant

来源:互联网 发布:成都管家婆软件代理 编辑:程序博客网 时间:2024/06/06 17:28

题目链接:http://poj.org/problem?id=1696
题意:给你n个点的坐标,并给出每个点的序号,让你找一条,不向右拐的最长的路径
解析:每次都找到一个基准点做极角排序,下一次则选则相对于之前那一个点最小极角的点,再接着进行极角排序,这样生成的路径就是所求的

#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostream>#include <vector>#include <queue>#include <set>using namespace std;const int maxn = 1000+100;struct point{    int id;    double x,y;    point() {}    point(double _x,double _y)    {        x = _x;        y = _y;    }    bool operator < (const point &b)const    {        if(y==b.y)            return x<b.x;        return y<b.y;    }}a[maxn];int cnt = 0;double x_mul(point p0,point p1,point p2){    return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}double dis(point a,point b){    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}int cmp(point p1,point p2){    if(x_mul(a[cnt],p1,p2)==0)        return dis(a[cnt],p1)<dis(a[cnt],p2);    return x_mul(a[cnt],p1,p2)>0;}int main(){    int t;    cin>>t;    while(t--)    {        int n;        scanf("%d",&n);        for(int i=0;i<n;i++)            scanf("%d %lf %lf",&a[i].id,&a[i].x,&a[i].y);        sort(a,a+n);        cnt = 0;        for(int i=1;i<n;i++)        {            sort(a+i,a+n,cmp);            cnt++;        }        printf("%d",n);        for(int i=0;i<n;i++)            printf(" %d",a[i].id);        puts("");    }    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 建行手机网银密码忘了怎么办 移动宽带账号密码忘了怎么办 移动宽带忘记账号密码怎么办 宽带账号密码忘了怎么办 不知道宽带账号密码怎么办 宽带的账号密码忘记了怎么办 wifi登录名忘记了怎么办 苹果手机微信图纸打不开怎么办 手机qq邮箱文件打不开怎么办 12360忘记用户名和密码怎么办 刚开店铺没生意怎么办 淘宝账户不符合注销条件怎么办 网易邮箱登录密码忘记了怎么办 q号密码忘记了怎么办 志愿者注册忘记密码和用户名怎么办 w10电脑语言栏不见了怎么办 w10美式键盘没了怎么办 xp电脑开机密码忘记了怎么办 电脑开机密码到期忘记改怎么办 电脑账户数据库密码忘了怎么办 微信不能拍摄了怎么办 华硕笔记本用户名密码忘了怎么办 学信网登录密码用户名搞忘怎么办 电脑密码输入错误会被锁怎么办 电脑被锁机软件设了密码怎么办 电脑密码被锁了怎么办 电脑xp密码忘了怎么办 三星账户账号密码忘了怎么办 三星账户密码忘记了怎么办 w7账号被禁用了怎么办 笔记本用户名密码忘记了怎么办 笔记本忘记用户名和密码怎么办 苹果手机忘记用户名和密码怎么办 w10电脑忘了密码怎么办 联想台式电脑密码忘记了怎么办 新电脑用一会就很烫怎么办 电脑忘了密码怎么办啊 戴尔笔记本账户密码忘记了怎么办 华硕台式电脑开不了机怎么办 手机号申请qq账号上限了怎么办 店铺不干了被告商标侵权怎么办