标签:order lse oss include die color tran values net
题目:
Description
Input
Output
Sample Input
2
10
1 4 5
2 9 8
3 5 9
4 1 7
5 3 2
6 6 3
7 10 10
8 8 1
9 2 4
10 7 6
14
1 6 11
2 11 9
3 8 7
4 12 8
5 9 20
6 3 2
7 1 6
8 2 13
9 15 1
10 14 17
11 13 19
12 5 18
13 7 3
14 10 16
Sample Output
10 8 7 3 4 9 5 6 2 1 10
14 9 10 11 5 12 8 7 6 13 4 14 1 3 2
题意:有一只虫子只能左转 类似于贪吃蛇 不能走自己经过的点 询问最长路径
思路:找到左下的点 然后进行极角排序
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const double eps=1e-10;
int tt,n,pos;
int dcmp(double x){
if(fabs(x)<eps) return 0;
if(x<0) return -1;
else return 1;
}
double sqr(double x){
return x*x;
}
struct Point{
int id;
double x,y;
Point(){}
Point(double a,double b):x(a),y(b){}
friend Point operator + (const Point &a,const Point &b){
return Point(a.x+b.x,a.y+b.y);
}
friend Point operator - (const Point &a,const Point &b){
return Point(a.x-b.x,a.y-b.y);
}
friend Point operator * (const Point &a,const double b){
return Point(a.x*b,a.y*b);
}
friend Point operator * (const double a,const Point &b){
return Point(a*b.x,a*b.y);
}
friend Point operator / (const Point &a,const double b){
return Point(a.x/b,a.y/b);
}
double norm(){
return sqrt(sqr(x)+sqr(y));
}
}t[110];
double det(const Point &a,const Point &b){
return a.x*b.y-a.y*b.x;
}
double dis(const Point &a,const Point &b){
return (a-b).norm();
}
bool cmp(const Point &a,const Point &b){
double tmp=det((a-t[pos]),b-t[pos]);
if(dcmp(tmp)==0) return dis(t[pos],a)<dis(t[pos],b);
else if(dcmp(tmp)<0) return false;
else return true;
}
int main(){
scanf("%d",&tt);
while(tt--){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%lf%lf",&t[i].id,&t[i].x,&t[i].y);
if(t[i].y<t[0].y || (t[i].y==t[0].y && t[i].x<t[0].x))
swap(t[0],t[i]);
}
pos=0;
for(int i=1;i<n;i++){
sort(t+i,t+n,cmp);
pos++;
}
printf("%d",n);
for(int i=0;i<n;i++){
printf(" %d",t[i].id);
}
printf("\n");
}
return 0;
}
标签:order lse oss include die color tran values net
原文地址:https://www.cnblogs.com/whdsunny/p/9873783.html