資源簡介
凸包(c++入門級(jí)示例)
代碼片段和文件信息
#include
#include
#include
#include
#define?CLR(x)?memset(x0sizeof(x))
#define?ll?long?long?int
#define?PI?acos(-1.0)
#define?db?double
using?namespace?std;
struct?point
{
????int?xy;
}p[1005]s[1005];
/*叉積計(jì)算*/
int?det(int?x1int?y1int?x2int?y2)
{
????return?x1*y2-x2*y1;
}
/*?求倒數(shù)第二個(gè)點(diǎn)和倒數(shù)第一個(gè)點(diǎn)與倒數(shù)第一個(gè)點(diǎn)與當(dāng)前點(diǎn)的叉乘*/
int?cross(point?opoint?apoint?b)
{
????return?det(a.x-o.xa.y-o.yb.x-o.xb.y-o.y);
}
/*求平方*/
db?f(int?x)
{
????return?x*x*1.0;
}
/*水平排序*/
bool?cmp(point?apoint?b)
{
????if(a.y==b.y)
????????return?a.x ????return?a.y }
db?dis(point?apoint?b)
{
????return?sqrt(f(a.x-b.x)+f(a.y-b.y));
}
int?nl;
int?main()
{
????while(scanf(“%d“&n)!=EOF)
?
評(píng)論
共有 條評(píng)論