poj1696 計算幾何

2021-06-05 01:44:10 字數 946 閱讀 9080

//運用叉積判斷是否是逆時針,因為同一直線上也行,所以有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...