求全部点组成的三角形最小的面积,0除外。

本题就枚举全部能够组成的三角形,然后保存最小的就是答案了。由于数据量非常少。

复习一下怎样求三角形面积。最简便的方法就是向量叉乘的知识了。

并且是二维向量叉乘P1(ax, ay), P2(bx, by)。公式为:|P1 X P2| = abs(ax*by - ay*bx)

三角形面积就是|P1 X P2| / 2;

本题也是float过不了。换成double就能够过了。

const int MAX_N = 101;
struct VertexPoint
{
double x, y;
float crossProduct(const VertexPoint &n) const
{
return x * n.y - y * n.x; //cross product
}
VertexPoint operator-(const VertexPoint &n) const
{
VertexPoint a;
a.x = x - n.x;
a.y = y - n.y;
return a;
}
}; int N;
VertexPoint P[MAX_N]; int main()
{
int T;
VertexPoint a, b;
scanf("%d", &T);
while (T--)
{
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%lf %lf", &P[i].x, &P[i].y);
}
double area = DBL_MAX;
for (int i = 0; i < N; i++)
{
for (int j = i+1; j < N; j++)
{
for (int k = j+1; k < N; k++)
{
a = P[j] - P[i];
b = P[k] - P[i];
double tmp = fabs(a.crossProduct(b) * 0.5);
if (tmp > DBL_EPSILON) area = min(area, tmp);
}
}
}
if (area == DBL_MAX) puts("Impossible");
else printf("%.2lf\n", area);
}
return 0;
}

HDU 4709 Herding 几何题解的更多相关文章

  1. hdu 4709:Herding(叉积求三角形面积+枚举)

    Herding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  2. hdu - 4709 - Herding

    题意:给出N个点的坐标,从中取些点来组成一个多边形,求这个多边形的最小面积,组不成多边形的输出"Impossible"(测试组数 T <= 25, 1 <= N < ...

  3. HDU 4709 Herding (枚举)

    Herding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  4. hdu 4709 Herding hdu 2013 热身赛

    题意:给出笛卡尔坐标系上 n 个点,n不大于100,求出这些点中能围出的最小面积. 可以肯定的是三个点围成的面积是最小的,然后就暴力枚举,计算任意三点围成的面积.刚开始是求出三边的长,然后求面积,运算 ...

  5. 学习数论 HDU 4709

    经过杭师大校赛的打击,明白了数学知识的重要性 开始学习数论,开始找题练手 Herding HDU - 4709 Little John is herding his father's cattles. ...

  6. HDU 4709:Herding

    Herding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  7. 【Herding HDU - 4709 】【数学(利用叉乘计算三角形面积)】

    题意:给出n个点的坐标,问取出其中任意点围成的区域的最小值! 很明显,找到一个合适的三角形即可. #include<iostream> #include<cstdio> #in ...

  8. HDU 4709 3-idiots FFT 多项式

    http://acm.hdu.edu.cn/showproblem.php?pid=4609 给一堆边,求这一堆边随便挑三个能组成三角形的概率. 裸fft,被垃圾题解坑了还以为很难. 最长的边的长度小 ...

  9. hdu 5839(三维几何)

    Special Tetrahedron Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

随机推荐

  1. SparkContext主构造函数代码提取

    这是阅读sparkContext类的代码做的一个笔记.阅读这个类的时候,主要的任务就是搞清楚sparkContext是怎么构造的,java.C#的class的初始化都是放在一个方法中的,而scala的 ...

  2. E - Fibonacci Again(找规律)

    逐渐发现找规律的美妙之处啦,真不错,用普通方法解决很久或者很麻烦的问题,找到规律就很方便,算法最主要还是思想 Description There are another kind of Fibonac ...

  3. hdu1284经典钱币兑换问题

    钱币兑换问题. 题目 http://acm.hdu.edu.cn/showproblem.php?pid=1284 完全背包. 这种是求背包问题最多的组合方案 参考了一些资料   http://blo ...

  4. ContentProvider中的数据生成时机

    目录结构: , 先给个结论: 仅仅是实例化mySqliteHelper()这个类的时候是不会创建数据库的,实际上数据库的真正创建是在helper.getWritableDatabase()的方法执行后 ...

  5. AFNetWorking 提交 NSArray 类型参数 取不到值的解决办法

    在使用AFNWorking 提交参数的时候, 其中包含NSArray类型的参数, 但是后台可以接收到普通int, string 类型的参数,就是接收不到array类型的, google后发现原来AFN ...

  6. 使用阿里云集成包快速搭建LAMP+FTP教程

    LAMP集成包安装步骤 1.下载开发集成包 下载最新版的阿里云市场提供的WEB开发集成包(内含Apache.Mysql.PHP.vsftpd) #Linux指令wget http://gongdan. ...

  7. 带OpenSSL和MySQL的静态编译版本~

    http://www.npcglib.org/~stathis/blog/precompiled-qt4-qt5/ http://www.npcglib.org/~stathis/blog/preco ...

  8. Android动态加载jar、apk的实现

    前段时间到阿里巴巴参加支付宝技术分享沙龙,看到支付宝在Android使用插件化的技术,挺好奇的.正好这几天看到了农民伯伯的相关文章,因此简单整理了下,有什么错误希望大神指正. 核心类 1.1     ...

  9. 西安力邦智能医疗&amp;可穿戴设备沙龙--第1期---苹果HealthKit、谷歌GoogleFit来袭,智能医疗要爆发吗?

    背    景: "可穿戴设备"成为2014的行业热点,从Google Glass到苹果iWatch, 越来越多的企业推出了包含眼镜.腕带.鞋等各种可穿戴设备,"可穿戴&q ...

  10. sharePoint常用命令

    New-SPStateServiceDatabase -Name "StateServiceDatabase" | New-SPStateServiceApplication -N ...