栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1696 Space Ant

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1696 Space Ant

#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cmath>#include <vector>#define eps 1e-6using namespace std;struct Point{    double x,y;    int id;};Point a[100];int vis[100];int n;double multi(Point p0,Point p1,Point p2){    return (p1.x-p0.x)*(p2.y-p0.y)-(p1.y-p0.y)*(p2.x-p0.x);}double dis(Point p0,Point p1){    return (p0.x-p1.x)*(p0.x-p1.x)+(p0.y-p1.y)*(p0.y-p1.y);}int sig(double x){    if(fabs(x)<eps) return 0;    if(x>eps) return 1;    if(x<-eps) return -1;}int main(){    int T;    scanf("%d",&T);    int i,j,k;    while(T--)    {        scanf("%d",&n);        double miny=9999.0;        vector<int> v;        for(i=1;i<=n;i++)        { int u,v,w; scanf("%d %lf %lf",&a[i].id,&a[i].x,&a[i].y); vis[i]=0; if(sig(miny-a[i].y)==1) {     miny=a[i].y;     k=a[i].id; }        }        v.push_back(k);        vis[k]=1;        int flag=0;        int k1,k2;        while(1)        { for(i=1;i<=n;i++) {     if(!vis[i])     {         k1=i;         break;     } } for(i=1;i<=n;i++) {     if(vis[i]) continue;     if(sig(multi(a[k],a[k1],a[i]))==-1)     {         k1=i;     }     else if(sig(multi(a[k],a[k1],a[i]))==0)     {         if(sig(dis(a[i],a[k])-dis(a[k1],a[k]))==1)         {  k1=i;         }     } } vis[k1]=1; v.push_back(k1); k=k1; if(v.size()==n) {     break; }        }        printf("%d",n);        for(i=0;i<v.size();i++)        { printf(" %d",v[i]);        }        printf("n");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号