题解 :

这个题目的关键之处在于你要发现这个一个凸包,然后许多东西在凸包上面就有了单调性,旋转卡壳就是用了这个道理才得以实现。
我们发现对于每一个 i j 来说 k 都是单调的这样我们就可以通过枚举i j 利用 k 的单调性 使得时间复杂度降到 n ^ 2 凸包的优美性质啊 单调性 然后就是旋转卡壳了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const double eps = 1e-8;
const int maxn = 50005;struct point {double x,y;
}p[maxn],tu[maxn];
int n;
double ab (double x) {return x > 0 ? x : -x;}int sgn (double x) {if (ab (x) < eps) return 0;return x > 0 ? 1 : -1;
}
point init;
double cross (point a,point b,point c) {return (b.x - a.x) * (c.y - a.y) - (c.x - a.x) * (b.y - a.y);
}
double cross (double x1,double y1,double x2,double y2) {return x1 * y2 - x2 * y1;
}
double dist (point a,point b) {return sqrt ((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
bool cmp (const point a,const point b) {int sg = sgn (cross (a.x-init.x,a.y - init.y,b.x - init.x,b.y - init.y));if (sg == 0) return dist (init,a) < dist (init,b);return sg > 0;
}
int tot = 0;
void tubao () {for (int i = 1;i <= 2; ++ i) tu[i] = p[i];tot = 2;for (int i = 3;i <= n; ++ i) {while (tot > 1) {point p1,p2,p3;p1 = tu[tot];p2 = tu[tot - 1];p3 = p[i];if (cross(p1.x - p2.x,p1.y - p2.y,p3.x - p1.x,p3.y-p1.y) <= 0) tot --;else break;}tu[++ tot] = p[i];}
}double solve () {double ans = 0;tu[tot + 1] = tu[1];for (int i = 1;i <= tot; ++ i) {int k = 2;for (int j = i + 1;j <= tot; ++ j) {while (ab(cross(tu[k], tu[i], tu[j])) < ab (cross(tu[k + 1],tu[i],tu[j]))) k = k % tot + 1;double s = 0.5 * ab(cross(tu[k], tu[i], tu[j]));ans = max (ans,s);}}return ans;
}
int main () {while (scanf ("%d",&n) && n != -1) {for (int i = 1;i <= n; ++ i) {scanf ("%lf%lf",&p[i].x,&p[i].y);if (p[i].y < p[1].y || (p[i].y == p[1].y && p[i].x < p[1].x)) swap (p[i],p[1]);}init = p[1];sort (p + 2,p + n + 1,cmp);tubao();printf ("%.2f\n",solve());}return 0;
}

POJ 2079 求最大三角形面积相关推荐

  1. 海伦公式用计算机语言怎么写,python中海伦公式求取三角形面积的示例

    python中海伦公式求取三角形面积的示例 发布时间:2020-12-07 10:01:44 来源:亿速云 阅读:143 作者:小新 这篇文章将为大家详细讲解有关python中海伦公式求取三角形面积的 ...

  2. 三角形面积公式用坐标用c语言,通过三个点的坐标求出三角形面积的公式

    当三个点A.B.C的坐标分别为A(x1,y1).B(x2,y2).C(x3.y3)时,三角形面积为, S=(x1y2-x1y3+x2y3-x2y1+x3y1-x2y2). 解:设三个点A.B.C的坐标 ...

  3. n个点组成多少个三角形Java,农田开发 NOJ (已知N个点选取3个求最大三角形面积问题)...

    题目描述 有一块农田,田地里安放上N个小木桩,木桩的占地面积忽略不计.选择三个小木桩,使得三个小木桩的围成的三角形占地面积最大. 输入 第一行一个整数N(3<=n<=100),便是木桩个数 ...

  4. 实验三-2-2、 输入三角形的3条边a、b、c,判断它们能否构成三角形。若能构成三角形,求出三角形面积,若不能,输出“不能构成三角形”。(三角形面积area=sqrt(s*(s-a)*(s-b)*(s

    #include<stdio.h> #include<math.h> int main() { float a,b,c,s,area; printf("Please ...

  5. 【C++】求三角形面积

    求三角形面积 时间限制: 1 Sec  内存限制: 128 MB 题目描述 传说古代的叙拉古国王海伦二世发现的公式,利用三角形的三条边长来求取三角形面积.已知△ABC中的三边长分别为a,b,c,求△A ...

  6. python海伦公式求三角形面积_python编程实战:海伦公式求取三角形的面积

    之前小编向大家介绍了在python中求取三角形面积的方法:三角形面积代码.大家对三角形面积的求取有了一定的了解,我们也知道计算机可以进行高精度的计算,那如果说在测量土地的面积的时候,不测三角形的高,只 ...

  7. 信息学奥赛一本通(2073:【例2.16 】三角形面积)

    2073:[例2.16 ]三角形面积 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 61     通过数: 49 [题目描述] 传说古代的叙拉古国王海伦二世发现的 ...

  8. 【2073】三角形面积

    2073:[例2.16 ]三角形面积 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 6632     通过数: 4668 [题目描述] 传说古代的叙拉古国王海伦二 ...

  9. 2073:【例2.16 】三角形面积

    2073:[例2.16 ]三角形面积 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 13508     通过数: 9544 [题目描述] 传说古代的叙拉古国王海伦 ...

  10. 蓝桥杯 算法训练 三角形面积

    问题描述 给你一个三角形的底边长度a以及三角形的高度h,求此三角形面积s. 输入格式 输入的第一行包含两个整数a, h,三角形的底边长a和高h. 输出格式 输出三角形的面积. 样例输入 2 2 样例输 ...

最新文章

  1. javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能
  2. 全球500强案例精选,带你了解人工智能在金融行业如何落地
  3. mysql慢SQL探测与优化
  4. B题 锅炉水冷壁温度曲线 2021年第一届长三角高校数学建模竞赛
  5. 编程语言里函数方法类型检查的重要性
  6. Mac OS修改VSCode Go的默认缩进格式
  7. 将普通文章内容替换为微信图文消息符合的内容
  8. DFA和NFA的区别
  9. php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】
  10. noip模拟赛 SAC E#1 - 一道中档题 Factorial
  11. minecraftjava版光追_我的世界:网易版终于更新狐狸生物?Java版光追技术已开始测试?...
  12. 到外企应聘如何准备英文简历(Tips for Resume)
  13. ios模拟器安装证书
  14. jQuery实现点击复制文本效果
  15. opencv的core组件——像素,ROI,图像混合(3)
  16. 从广域网云化看SD-WAN
  17. 计算机笔记Excel,秦路天善智能EXCEL学习笔记1-文本清洗函数
  18. 灰狼优化算法(GWO)附代码
  19. 微信团队分享:微信支付代码重构带来的移动端软件架构上的思考
  20. alpine的介绍与使用

热门文章

  1. 众包专访:开源中国众包,让未来多一种可能
  2. Windows字体美化指南
  3. SSL/TLS(3): CA证书解释
  4. GPS测量中四参数、七参数的概念及意义
  5. 超级计算机运存多少,6GB内存到底能开多少个APP?实测告诉你最终答案
  6. 百度网盘限速破解——Proxyee-down的下载与安装教程
  7. DM 关键字、屏蔽关键字
  8. 马氏距离 java实现_Python怎么实现马氏距离
  9. u盘复制到计算机的文档打不开怎么办,U盘文件复制到别的电脑打不开怎么办
  10. 百度EasyDL图像分类的使用