HDU 2202 最大三角形
最大三角形
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3248 Accepted Submission(s): 1098
Eddy对这道题目百思不得其解,想不通用什么方法来解决,因此他找到了聪明的你,请你帮他解决这个题目。
每组输出占一行。
给你 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 最大三角形相关推荐
- HDU 2202 最大三角形 (凸包)
Description 老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大. Eddy对这道题目百思 ...
- HDU 2202 计算几何
最大三角形 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU - 2091 空心三角形 水题,但是有点坑...
空心三角形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 2202.最大三角形 --计算几何
参考https://www.cnblogs.com/xiexinxinlove/p/3708147.html https://blog.csdn.net/MyHeaven7/article/detai ...
- 张一鸣演讲全文:外部波澜起伏,内心平静如常|字节跳动9周年
世界在动态变化,外部波澜起伏,内心要保持平静如常. 3月30日,在公司9周年庆上,字节跳动创始人张一鸣发表了演讲<平常心做非常事>,分享了他对于"平常心"的思考:如何以 ...
- hdu 5312 Sequence(数学推导——三角形数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others) ...
- hdu 50722014鞍山现场赛C题(容斥原理+同色三角形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5072: 题意:找出一个3元集合使集合中的两两互质,或两两不互质.这样的集合的个数. 分析:将每个数都幻 ...
- hdu 5072 Coprime(同色三角形+容斥)
http://acm.hdu.edu.cn/showproblem.php?pid=5072 单色三角形模型 现场赛和队友想了3个小时,最后发现想跑偏了.感觉好可惜的一道题,要是知道这个模型....就 ...
- HDU 3934 Summer holiday(凸包内接最大三角形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3934 题意:给出n个点,从中找出三个点使得面积最大. 思路:旋转卡壳模板题:首先求凸包,在旋转求最大面 ...
最新文章
- 【BZOJ5470】【FJOI2018】—所罗门王的宝藏(BFS)
- 玩转算法面试-第三章
- 思维导图网页版、临时使用推荐工具——画图本
- 主从复制中忽略库的参数
- Android基础学习第二篇—Activity
- 初级前端如何突破瓶颈
- JVM 内存区域方面的面试题
- Collat​​e SQL命令概述
- 从 Vue 的视角学 React(二)—— 基本语法
- php win 输入密码,win10开机密码输入框不见了怎么办
- sqluldr2 用法简述
- 前IBM人工智能科学家为你解读AI行业的三大核心素养
- RHEL7设置默认启动图形化界面
- 物联网安全有哪些关键技术?
- collapse mode 严重_Android工具栏collapseMode问题
- GIT 命令学习:获取与创建项目
- c++如何生成release版本
- Trunk链路的作用
- day1-python猜单词游戏
- 海康威视旗下萤石网络上市:首日跌12% 公司市值142亿
热门文章
- 图像的评价指标之SSMI——结构相似性
- mysql数字转换中文版_MYSQL字符数字转换
- cpu使用率 htop显示_Linux查看CPU和内存使用情况
- AlertDialog的使用(一)
- 丢失控制文件,有旧的备份控制文件,之后有drop表空间和create表空间的操作恢复。...
- 数学:Burnside引理与Pólya定理
- .net core 中文乱码问题
- 面试7 GC机制中如何判断一个对象是否任在使用
- bzoj2333 [SCOI2011]棘手的操作(洛谷3273)
- Eclipse报错:gc overhead limit exceeded eclipse