当前位置: 首页 > news >正文

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;
}






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5150660.html,如需转载请自行联系原作者

相关文章:

  • jqGrid获取json数据方法
  • JAVA类的初始化顺序与initialize参数
  • 5.[研磨设计模式笔记]装饰模式
  • 网络安全系列之六 利用数据库备份上传WebShell
  • Linux自动引导配置光盘的制作
  • HTML和javascript 第三天
  • SCOM 2012 SP1服务器上安装和配置Veeam MP for VMware
  • 数据迁移
  • VMM系列之添加工作组Hyper-V主机到VMM服务器
  • 由生活的例子来剖析QuickTest的工作原理
  • easyui combobox 获取焦点
  • CTF---Web入门第十二题 程序逻辑问题
  • js基础2
  • Fis3构建迁移Webpack之路
  • 编码 GBK 的不可映射字符
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular 2 DI - IoC DI - 1
  • canvas 五子棋游戏
  • Java反射-动态类加载和重新加载
  • Koa2 之文件上传下载
  • leetcode98. Validate Binary Search Tree
  • Markdown 语法简单说明
  • MQ框架的比较
  • 包装类对象
  • 基于 Babel 的 npm 包最小化设置
  • 记录一下第一次使用npm
  • 使用Swoole加速Laravel(正式环境中)
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 线性表及其算法(java实现)
  • 硬币翻转问题,区间操作
  • No resource identifier found for attribute,RxJava之zip操作符
  • 阿里云ACE认证学习知识点梳理
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​2020 年大前端技术趋势解读
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $refs 、$nextTic、动态组件、name的使用
  • (16)Reactor的测试——响应式Spring的道法术器
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (day6) 319. 灯泡开关
  • (一)Linux+Windows下安装ffmpeg
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)Neo4j下载安装以及初次使用
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net core控制台应用程序初识
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET MVC 验证码
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net开发时的诡异问题,button的onclick事件无效