//運用叉積判斷是否是逆時針,因為同一直線上也行,所以有n個植物就可以吃掉n個植物
#include#include#include#include#include#define dist(a,b) sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y))
#define cross(a,b,c) 1.0*(b.x-a.x)*(c.y-a.y)-1.0*(b.y-a.y)*(c.x-a.x)
#define dot(a,b,c) (b.x-a.x)*(c.x-a.x)+(b.y-a.y)*(c.y-a.y)
#define delt(a) fabs(a)0?1:-1
#define pi acos(-1.0)
#define eps 1e-8
#define inf 1e20
#define n 105
#define m 1005
using namespace std;
typedef __int64 i64;
struct tpoint
pt[n];
int n,m,t;
int path[n];
bool vis[n];
void scan()
bool cmp(tpoint a,tpoint b)
void output()
void solve()
if(j==-1) break;
p2=pt[j];
minl=dist(p1,p2);
for(i=0,j=-1;i}
path[m++]=p2.id;
p1=p2;
vis[p2.id]=1;
} output();
}int main()
return 0;
}
極角排序 POJ1696
vj題目連線 一種奇怪的蟲子不能右轉且走過路線之間不能有交點,吃植物才能存活,給出植物的座標,求蟲子要怎樣走才能活得最久 吃的植物越多活越久 輸入 樣例數,n組樣例,每組給出乙個n,然後n行每行給出3個數,分別是植物編號 植物x座標 植物y座標 輸出 能吃的最大植物數目,並給出路線 因為蟲子只能左轉...
POJ 1696 極角排序
題目中指定了ant爬行時的幾種規則,從中我們可以知道ant是按照當前所處位置,對其他的plant進行極角排序後,選擇角度最小過去,重複,一直到走到最後乙個plant。sort一發就可以了 include include include include include const double eps...
POJ 1696 Space Ant 計算幾何
題意 給出一系列二維點,問從 0,y 出發,y是這些點裡縱座標的最小值,只能左轉或者直走,並且每個點只能走一次,輸出能走完這些點的路徑的順序。題解 先找到第乙個點,它肯定是當y取最小時的那個點,然後接下來開始遍歷,每次找的點與pre連成的線都要與pre和first連成的線的夾角最小,找到後就更新fi...