HDU 4709 Herding 几何题解
求全部点组成的三角形最小的面积,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 几何题解的更多相关文章
- hdu 4709:Herding(叉积求三角形面积+枚举)
Herding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- hdu - 4709 - Herding
题意:给出N个点的坐标,从中取些点来组成一个多边形,求这个多边形的最小面积,组不成多边形的输出"Impossible"(测试组数 T <= 25, 1 <= N < ...
- HDU 4709 Herding (枚举)
Herding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- hdu 4709 Herding hdu 2013 热身赛
题意:给出笛卡尔坐标系上 n 个点,n不大于100,求出这些点中能围出的最小面积. 可以肯定的是三个点围成的面积是最小的,然后就暴力枚举,计算任意三点围成的面积.刚开始是求出三边的长,然后求面积,运算 ...
- 学习数论 HDU 4709
经过杭师大校赛的打击,明白了数学知识的重要性 开始学习数论,开始找题练手 Herding HDU - 4709 Little John is herding his father's cattles. ...
- HDU 4709:Herding
Herding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 【Herding HDU - 4709 】【数学(利用叉乘计算三角形面积)】
题意:给出n个点的坐标,问取出其中任意点围成的区域的最小值! 很明显,找到一个合适的三角形即可. #include<iostream> #include<cstdio> #in ...
- HDU 4709 3-idiots FFT 多项式
http://acm.hdu.edu.cn/showproblem.php?pid=4609 给一堆边,求这一堆边随便挑三个能组成三角形的概率. 裸fft,被垃圾题解坑了还以为很难. 最长的边的长度小 ...
- hdu 5839(三维几何)
Special Tetrahedron Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
随机推荐
- ubuntu15.04安装hexo
首先吐槽一下npm淘宝源,貌似中国目前唯一一个npm源,现在不好用了,不知道是不是换了地址,在吐槽一下万恶的墙!你懂得. 好了,说点正儿八经的事儿. 之所以安装hexo也是为了创建自己的博客,我只说最 ...
- Codeforces 479D - Long Jumps
479D - Long Jumps, 480B - Long Jumps It , or . If we can already measure both x and y, output . Then ...
- AzureDev 社区活动获奖者公布
今天,我们高兴地宣布 AzureDev社区活动的获奖者,并向这 5 个非盈利技术教育组织发放 10 万美元奖金.在 2013 年的Build大会上宣布的 AzureDev 活动专注于通过代码改变世界, ...
- JavaDoc的生成规则---ShinePans
使用方法: javadoc [options] [packagenames] [sourcefiles] [@files] -overview <file> 从 HTML ...
- arm: 使用结构体操作寄存器
使用结构体操作寄存器: //寄存器赋值和取值的时候,要注意寄存器的长度,有的寄存器的值只有8位. //还要注意,使用volatile修饰寄存器变量.volatile 参考http://www.cnbl ...
- 06-UIKit(tableView数据模型)
目录: 一.UIPageControl 二.table view数据模型 三.反向传值给TableView并更新 回到顶部 一.UIPageControl在页面下显示点 1 重要属性 .numberO ...
- Swift - 禁用UIWebView和WKWebView的下拉拖动效果
使用UIWebView或WKWebView加载网页时,如果页面处于最顶端时,用户用手指往下拖动,会露出灰色空背景.同样页面在最底部的时候,继续向上拖动,下方也会露出空背景. 要禁止这个拖动效果,可进行 ...
- Windows下sass的安装
sass依赖Ruby,所以,首先得先安装个Ruby 安装步骤: 1.安装Ruby的时候,勾上Add Ruby executables to your PATH(添加环境变量) 2.安装好Ruby之后, ...
- jQuery 3.0 的 Data
jQuery 3.0 的 Data Snandy If you cannot hear the sound of the genuine in you, you will all of your li ...
- 如何捕获winform程序全局异常?
1.在C#中我们如何处理异常? 上面的问题学过C#的问题大家可能都能回答处理,用try-catch-finally具体如下: try { //可能出错的语句 } catch (Exception) { ...