描述 有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!(籬笆足夠多,並且長度可變) 輸入
第一行輸入的是n,代表用n組測試資料(1<=n<=10)
第二行輸入的是m,代表本組測試資料共有m個供水裝置(3<=m<=100)
接下來m行代表的是各個供水裝置的橫縱座標
輸出輸出各個籬笆經過各個供水裝置的座標點,並且按照x軸座標值從小到大輸出,如果x軸座標值相同,再安照y軸座標值從小到大輸出
樣例輸入
1
40 0
1 12 3
3 0
樣例輸出
0 0
2 33 0
思路:自己悶頭搞了好久才知道是裸的凸包演算法模板題......小白特別白555。凸包演算法詳解(附模板):www.cnblogs.com/aiguona/p/7232243.html
**如下:
#include#include#includeusing namespace std;
struct nodep[105],s[105];
bool cmp(node a, node b)
int main()
t=top-1;
for(int i=n-1;i>=0;--i) // 求上凸包
--top; // 下凸包和上凸包的首尾點肯定是重疊的,所以刪去
sort(s,s+top,cmp);
for(int i=0;iprintf("%d %d\n",s[i].x,s[i].y);
}return 0;
}
圈水池 凸包入門
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!籬笆足夠多,並且長度可變 輸入第一行輸...
凸包問題 圈水池 nyist 78
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...
NYOJ 78 圈水池(凸包基礎)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!籬笆足夠多,並且長度可變 輸入第一行輸...