#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 描述 有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!籬笆足夠多,並且長度可變 輸入第一行輸...