NYOJ 78 圈水池(簡單凸包)

2021-09-08 09:29:31 字數 1207 閱讀 9849

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4

描述

有乙個牧場,牧場上有很多個供水裝置,現在牧場的主人想要用籬笆把這些供水裝置圈起來,以防止不是自己的牲畜來喝水,各個水池都標有各自的座標,現在要你寫乙個程式利用最短的籬笆將這些供水裝置圈起來!(籬笆足夠多,並且長度可變)

輸入第一行輸入的是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

1 #include 2 #include 3 #include 4

5using

namespace

std;67

struct

point

8p[105], s[105

];12

13bool

cmp(point a, point b)

1417

18/*

19int dis(point a, point b)

2023

*/24

25bool

judge(point a, point b, point c)

2635

36int

main()

3754 t = top-1;55

for(int i = n-1; i >= 0; --i) //

求上凸包

5661 --top; //

下凸包和上凸包的首尾點肯定是重疊的,所以刪去

6263 sort(s, s+top, cmp);

64for(int i = 0; i < top; ++i)

65 printf("

%d %d\n

", s[i].x, s[i].y);66}

67return0;

68 }

NYOJ 78 圈水池(凸包基礎)

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

NYOJ 78 圈水池 (凸包問題)

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

圈水池 nyoj 78 凸包演算法

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