最大三角形

Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3248    Accepted Submission(s): 1098

Problem Description
老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大。
Eddy对这道题目百思不得其解,想不通用什么方法来解决,因此他找到了聪明的你,请你帮他解决这个题目。
Input
输入数据包含多组测试用例,每个测试用例的第一行包含一个整数n,表示一共有n个互不相同的点,接下来的n行每行包含2个整数xi,yi,表示平面上第i个点的x与y坐标。你可以认为:3 <= n <= 50000 而且 -10000 <= xi, yi <= 10000.
Output
对于每一组测试数据,请输出构成的最大的三角形的面积,结果保留两位小数。
每组输出占一行。
Sample Input
3 3 4 2 6 3 7 6 2 6 3 9 2 0 8 0 6 6 7 7
Sample Output
1.50 27.00

给你 n 个点 然后求其中三个点形成的三角形面积最大为多少 。

解法就是求一个凸包 , 然后 n^3 枚举凸包栈里面的点求一下向量叉积就过了 -。-

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;typedef pair<double,double> Point;const int N = 50010 ;
//#define x first
//#define y second
//vector<Point>ch , p;
int n ;struct node
{double x , y ;node(){};node( double a ,double b ){ x = a , y = b ; }node operator - (const node &a )const{ return node(x - a.x , y - a.y ); }}p[N] , ch[N];
inline double Cross( node a , node b ){ return a.x * b.y - a.y * b.x ; }
inline bool cmp ( const node &a ,const node &b ){ if(a.x != b.x )return a.x < b.x ; else return a.y < b.y ; }int ConvexHull()
{int  top = 0 ;sort( p , p + n , cmp );for( int i = 0 ; i < n ; ++ i ){while( top > 1 && Cross( ch[top-2] - ch[top-1] , p[i] - ch[top-2 ] ) <= 0  ) top -- ;ch[top++] = p[i];}int k = top ;for( int i = n-2 ; i >= 0 ; --i ){while( top > k && Cross( ch[top-2] - ch[top-1 ] , p[i]- ch[top -2 ]) <= 0 )top -- ;ch[top++ ] = p[i];}if( n > 1 ) top -- ;return  top ;
}void run()
{double a , b ;for( int i = 0 ; i < n ; ++ i ){cin >> p[i].x >> p[i].y ;}int m = ConvexHull();double ans = 0 ;for( int i = 0 ; i < m ; ++i ){for( int j = i + 1 ; j < m ; ++j ){for( int k = j + 1 ; k < m ; ++k ){ans = max ( ans , fabs ( Cross( ch[i] - ch[j] , ch[i] - ch[k] ) ) );}}}printf("%.2lf\n", 0.5 * ans  );
}
int main()
{ios::sync_with_stdio(false);while( cin >> n && n ) run();
}

转载于:https://www.cnblogs.com/hlmark/p/3991867.html

HDU 2202 最大三角形相关推荐

  1. HDU 2202 最大三角形 (凸包)

    Description 老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大. Eddy对这道题目百思 ...

  2. HDU 2202 计算几何

    最大三角形 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  3. HDU - 2091 空心三角形 水题,但是有点坑...

    空心三角形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. 2202.最大三角形 --计算几何

    参考https://www.cnblogs.com/xiexinxinlove/p/3708147.html https://blog.csdn.net/MyHeaven7/article/detai ...

  5. 张一鸣演讲全文:外部波澜起伏,内心平静如常|字节跳动9周年

    世界在动态变化,外部波澜起伏,内心要保持平静如常. 3月30日,在公司9周年庆上,字节跳动创始人张一鸣发表了演讲<平常心做非常事>,分享了他对于"平常心"的思考:如何以 ...

  6. hdu 5312 Sequence(数学推导——三角形数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others)  ...

  7. hdu 50722014鞍山现场赛C题(容斥原理+同色三角形)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5072: 题意:找出一个3元集合使集合中的两两互质,或两两不互质.这样的集合的个数. 分析:将每个数都幻 ...

  8. hdu 5072 Coprime(同色三角形+容斥)

    http://acm.hdu.edu.cn/showproblem.php?pid=5072 单色三角形模型 现场赛和队友想了3个小时,最后发现想跑偏了.感觉好可惜的一道题,要是知道这个模型....就 ...

  9. HDU 3934 Summer holiday(凸包内接最大三角形)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3934 题意:给出n个点,从中找出三个点使得面积最大. 思路:旋转卡壳模板题:首先求凸包,在旋转求最大面 ...

最新文章

  1. 【BZOJ5470】【FJOI2018】—所罗门王的宝藏(BFS)
  2. 玩转算法面试-第三章
  3. 思维导图网页版、临时使用推荐工具——画图本
  4. 主从复制中忽略库的参数
  5. Android基础学习第二篇—Activity
  6. 初级前端如何突破瓶颈
  7. JVM 内存区域方面的面试题
  8. Collat​​e SQL命令概述
  9. 从 Vue 的视角学 React(二)—— 基本语法
  10. php win 输入密码,win10开机密码输入框不见了怎么办
  11. sqluldr2 用法简述
  12. 前IBM人工智能科学家为你解读AI行业的三大核心素养
  13. RHEL7设置默认启动图形化界面
  14. 物联网安全有哪些关键技术?
  15. collapse mode 严重_Android工具栏collapseMode问题
  16. GIT 命令学习:获取与创建项目
  17. c++如何生成release版本
  18. Trunk链路的作用
  19. day1-python猜单词游戏
  20. 海康威视旗下萤石网络上市:首日跌12% 公司市值142亿

热门文章

  1. 图像的评价指标之SSMI——结构相似性
  2. mysql数字转换中文版_MYSQL字符数字转换
  3. cpu使用率 htop显示_Linux查看CPU和内存使用情况
  4. AlertDialog的使用(一)
  5. 丢失控制文件,有旧的备份控制文件,之后有drop表空间和create表空间的操作恢复。...
  6. 数学:Burnside引理与Pólya定理
  7. .net core 中文乱码问题
  8. 面试7 GC机制中如何判断一个对象是否任在使用
  9. bzoj2333 [SCOI2011]棘手的操作(洛谷3273)
  10. Eclipse报错:gc overhead limit exceeded eclipse