凸包問題 圈水池 nyist 78

2021-06-08 04:13:33 字數 485 閱讀 5538

#include #include #include using namespace std;

struct point

;int cmp1 (point a,point b)// 按y排序

int cmp2(point a,point b) 按x排序

//此處是大於號

int graham(point pnt, int n, point res)//選中的點在儲存在res陣列中,個數是top

len = top; res[++top] = pnt[n - 2];

for (i = n - 3; i >= 0; i--)

return top; // 返回凸包中點的個數

}int main(void)

n=graham(a,n,b);

sort(b,b+n,cmp2);

for(i=0;icout<} }

NYOJ 78 圈水池 (凸包問題)

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!籬笆足夠多,並且長度可變 輸入 第一行...

nyoj 78 圈水池 凸包問題 籬笆問題

address 題目中文題目,很容易懂。有一點比較關鍵。輸出各個籬笆經過各個供水裝置的座標點,從這句話可以得到,如果3點共線,那麼這3個點都要輸出。在叉積函式中 return sp.x op.x ep.y op.y sp.y op.y ep.x op.x 即可解決。凸包 中的叉積 return sp...

NYOJ 78 圈水池(凸包基礎)

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!籬笆足夠多,並且長度可變 輸入第一行輸...