题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805046577840128
题目大意:给你一些点的坐标,取其中的三个点,求面积最小值(可以为0,即可以不是三角形)。
题目分析:首先是计算面积的公式,利用向量计算明显要快一点(已知两个共起点向量 其三角形面积=0.5*abs(x1*y2-x2*y1) 这个读者可以自行查阅资料)。既然用到向量,那么就需要选中一个点,然后计算出这个点和其余点的向量,对向量的夹角进行排序,面积最小值一定是相邻向量所组成的图形的面积(这里等我有时间再进行补充吧,我刚开始也是这里不太明白,现在有那么一点点清楚,所以将这到记下来。恰好要下很久的东西,这个时候来补充一点吧。写在后面咯)。需要说明的是,这只是选了其中的一个顶点,我们需要对每个顶点都进行一次这样的操作,然后求所有值中的最小值。
代码:

#include <bits/stdc++.h>using namespace std;#define LL long long
#define MAXN 5005struct point{LL x;LL y;bool operator <(point& p){return p.x*y<x*p.y;}
}a[MAXN],m[MAXN];
LL n,ans=1e18;
int main()
{scanf("%d",&n);for(int i=0;i<n;i++)scanf("%lld%lld",&a[i].x,&a[i].y);for(int i=0;i<n;i++){int t=0;for(int j=0;j<n;j++){if(i==j);else{m[t].x=a[j].x-a[i].x;m[t].y=a[j].y-a[i].y;t++;}}sort(m,m+t);for(int k=1;k<t;k++)ans=min(ans,abs(m[k].x*m[k-1].y-m[k].y*m[k-1].x));}double res=ans*1.0;res=res/2;printf("%.3f",res);return 0;
}

写在后面:由于时间比较紧急,所以写得不够详细,等我以后再来完善吧。

至于为什么要排序,以及为什么是求相邻的边组成的图形面积。我们先想想如果是求最大面积是怎么求呢?没错,就是用凸包来计算,最大面积的三角形的三个点一定都在凸包上,如果有一个点在凸包内,那么它的面积会小。
所以,我们求相邻的向量组成的面积,并不一定可以求出最小面积,但是可以排除那些不必要的情况。


画的图不是很清晰,假设现在求出ABC组成的三角形的面积,现在有一点D,(因为我们要解释AD在AB和AC中间的情况,所以其余情况不讨论)那么D有两种情况,D在ABC内和ABC 外,但是不管如何,当以B或者C为顶点时(这就是为什么所有的定点都要弄一次)又会是两个相邻的三角形,与之前的两个三角形恰好组成了所有可能的三角形。(我理解的就这么多了,希望你们也可以讲讲你们的理解)

PTA L3-021 神坛相关推荐

  1. CCCC 天梯赛 PTA ZOJ 题目 L1 L2 L3

    PTA 天梯赛题目整理 L2 难点 **L2-001 紧急救援** **L2-002 链表去重** **L2-003 月饼** **L2-004 这是二叉搜索树吗** **L2-005 集合相似度** ...

  2. PTA 神坛 (30 分)

    L3-3 神坛 (30 分) 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相 ...

  3. PTA:7-4 神坛 (30 分)

    一.题目 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线 ...

  4. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)

    [CCCC]PAT : 团体程序设计天梯赛-练习集 L3 答案 顶着满课,整整一星期,终于咕完了.(:´д`)ゞ 知识点分类(23): 1.搜索模拟(5):BFS,DFS,最短路,路径打印 2.计算几 ...

  5. PAT : 团体程序设计天梯赛-练习集 L3 答案即比赛技巧

    知识点分类(23): 1.搜索模拟(5):BFS,DFS,最短路,路径打印 2.计算几何(5):找规律,斜率计算,极角排序,三角形面积,三点共线,凸包 3.数据结构(5):栈,并查集,二叉树,堆,线段 ...

  6. PTA|团体程序设计天梯赛-练习题库集

    文章目录 关于爬取脚本的编写 L1-001 Hello World! (5 分) L1-002 打印沙漏 (15 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) ...

  7. 2021/4/24团队设计天梯赛L3题目集及部分题解

    2021/4/24团队设计天梯赛L3题目集及部分题解: 以下题解都是通过PTA测试的,大致保证正确性: 查看题目戳此::PTA题目集 L3题目集 L3-01 森森旅游 (30 分) L3-02 还原文 ...

  8. 沈师PTA数据结构2021编程复习题

    R7-1 二分查找 (15 分) 输入n值(1<=n<=1000).n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数.若x不存在,输出 ...

  9. 【PTA天梯赛练习题目2】

    pta天梯赛练习题目 考试座位号 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的 ...

最新文章

  1. mysql经纬度转距离_Mysql 拿指定经纬度与数据库多条经纬度进行距离计算 (转)
  2. windows双机调试
  3. js jquery 函数回调
  4. linux cut列截取工具使用示例
  5. sitecore系列教程之目标功能有什么新意?
  6. Android Call requires API level 11 (current min is 8)的解决方案
  7. quadprog函数的介绍和应用,二次规划函数
  8. 完美实现类似QQ的自拍头像、上传头像功能!(Demo 源码)
  9. Spring RestTemplate: 比httpClient更优雅的Restful URL访问, java HttpPost with header
  10. 开始学习python标准库---os
  11. UE4【C++】子弹伤害系统使用
  12. Javaweb - JSP章节 - MVC和三层架构案例总练习(下) - “回显数据”-“修改数据”功能实现
  13. eNSP-利用单臂路由实现VLAN 间路由
  14. 2022计算机毕业设计如何选题?
  15. c语言用system打出黑桃,C语言的随机发牌程序(红桃、黑桃、梅花、方块)
  16. java vcf文件 昵称怎么写,Vcf文件的突变ID号注释
  17. 让我们看看往年的1024传智播客怎么安排的
  18. android无感知拍照github,装X指南之通过 VirtualApp 实现免 Root 权限 Hook
  19. js中的yield、yield*和Generator函数
  20. 应用程序正常初始化(0xc150002)失败

热门文章

  1. 三星S24A350型显示器黑屏解决方法
  2. 8个有可能空投的项目
  3. idea 打 jar 包,包含第三方 jar 包
  4. 多巴胺ELISA试剂盒相关功能参数
  5. CMOS三态输出反相器
  6. vue-layer,在vue中的layer插件
  7. matlab画双移线,matlab应用二.ppt
  8. Java 处理字符串中的敏感词 配置模式
  9. PHP教程十一 循环
  10. 华南农业大学Linux课程综合实验-超详细版(实现用Go、nodejs、python、php读取mysql数据)