📄 1696.txt
字号:
#include"iostream.h"
#include"math.h"
#define index ASDFSADF
const double pi=3.14156265359;
struct point
{int x,y;};
point p[51];
int n;
struct vec
{int x,y;};
int set[51];
int cheng(vec t1,vec t2)
{return t1.x*t2.y-t1.y*t2.x;}
double jiao(vec a,vec b)
{return acos((a.x*b.x+a.y*b.y)/sqrt(a.x*a.x+a.y*a.y)/sqrt(b.x*b.x+b.y*b.y));}
int index[51];
void find(int a,vec v)
{int i;vec tt,to;double min=2*pi,f;
int m=-1;
for(i=0;i<n;i++)
if(!set[i]){tt.x=p[i].x-p[a].x;tt.y=p[i].y-p[a].y;
f=jiao(v,tt);
if(f<min){m=i;min=f;to=tt;}
}
if(m==-1)return;
set[m]=1;
cout<<' '<<index[m];
find(m,to);
}
int main()
{int i,j,t,yy,begin;vec v;
cin>>t;
while(t--)
{cin>>n;yy=29999;
for(i=0;i<n;i++)
{cin>>index[i]>>p[i].x>>p[i].y;
if(p[i].y<yy||(p[i].y==yy&&p[i].x<p[begin].x))
{begin=i;yy=p[i].y;}
}
for(i=0;i<n;i++)set[i]=0;
set[begin]=1;v.x=10;v.y=0;
cout<<n<<' '<<index[begin];
find(begin,v);
cout<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -