圈水池 nyoj 78 凸包演算法

2022-03-18 01:47:19 字數 2232 閱讀 6529

時間限制: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 3

/*

author:謙智

圈水池 nyoj 78 凸包演算法

*///

graham掃瞄法 求解凸包問題

#include#include

using

namespace

std;

const

int n = 105

;struct

node

node(

int x,int

y) };

node st[n];

struct cmp

};int cross(node a,node b,node c)

long

long dist(node a,node b)

bool cmp1(const node& a,const node& b)

intmain()

sort(node,node+n,cmp());

intx1,y1,x2,y2;

st[0] = node[0

]; sort(node+1,node+n,cmp1);

st[1] = node[1

];

int top = 1

;

for (int i = 2; i < n; i++)

st[++top] =node[i];

}sort(st,st+top+1

,cmp());

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

}}//用遞迴演算法求出凸包問題 wa

//#include

//#include

//using namespace std;

//struct node

//node(int x,int y)

//};

//struct cmp

//};

//int cut;

//node ans[105];

//void getansarr(node node,int n,int x1,int y1,int x2,int y2) ;

//int main()

//sort(node,node+n,cmp());

//int x1,y1, x2,y2;

//x1 = node[0].x;

//y1 = node[0].y;

//x2 = node[n-1].x;

//y2 = node[n-1].y;

//ans[0] = node(x1,y1);

//ans[1] = node(x2,y2);

//cut = 2;

//getansarr(node,n,x1,y1,x2,y2);

//sort(ans,ans+cut,cmp());

//for (int i = 0; i < cut; i++) //}

//}//void getansarr(node node,int n,int x1,int y1,int x2,int y2)

//if (l > lmax) //}

//if (lmax <= 0) //}

//return ;

//} else

//getansarr(temp,count,x1,y1,node[k].x,node[k].y);

//getansarr(temp,count,node[k].x,node[k].y,x2,y2);

//}

NYOJ 78 圈水池(凸包基礎)

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

NYOJ 78 圈水池 (凸包問題)

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

NYOJ 78 圈水池(簡單凸包)

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