L3-021 神坛 (30分)
L3-021 神坛 (30分)
在古老的迈瑞城,巍然屹立着 n 块神石。长老们商议,选取 3 块神石围成一个神坛。因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好。特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面积为 0.000
。
长老们发现这个问题没有那么简单,于是委托你编程解决这个难题。
输入格式:
输入在第一行给出一个正整数 n(3 ≤ n ≤ 5000)。随后 n 行,每行有两个整数,分别表示神石的横坐标、纵坐标(−109≤ 横坐标、纵坐标 <109)。
输出格式:
在一行中输出神坛的最小面积,四舍五入保留 3 位小数。
输入样例:
8
3 4
2 4
1 1
4 1
0 3
3 0
1 3
4 2
输出样例:
0.500
样例解释
输出的数值等于图中红色或紫色框线的三角形的面积。
思路: 三角形的面积通过 向量的叉积来求,
枚举每个点, 对每个点进行极角排序: 先按象限排序,再按叉积排序。
相邻两个点构成当前情况下的最小三角形面积 。
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
struct node{ll x,y;int rel;
}a[5010],b[5010];
int n;
bool cmp(node x,node y){ //极角排序 if( x.rel != y.rel) return x.rel < y.rel;return x.x*y.y-x.y*y.x<0;
}
int judge(node x) { //返回象限 if(x.x > 0 && x.y > 0) return 1;if(x.x > 0 && x.y < 0) return 2;if(x.x < 0 && x.y < 0) return 3;if(x.x < 0 && x.y > 0) return 4;
}
int main(){scanf("%d",&n);for( int i=1;i<=n;i++) scanf("%lld%lld",&a[i].x,&a[i].y);double ans=-1;int cnt;for(int i=1;i<=n;i++){cnt=1;for(int j=1;j<=n;j++){if( i==j )continue;b[cnt].x = a[j].x-a[i].x;b[cnt].y = a[j].y-a[i].y;b[cnt].rel = judge(b[cnt]);cnt++;}sort(b+1,b+n,cmp);for(int j=1;j<n-1;j++){if( ans==-1||fabs(b[j+1].x*b[j].y-b[j+1].y*b[j].x)*0.5<ans )ans=fabs(b[j+1].x*b[j].y-b[j+1].y*b[j].x)*0.5;}}printf("%.3f\n",ans);return 0;
}
L3-021 神坛 (30分)相关推荐
- 【CCCC】L3-021 神坛 (30分)计算几何+求三角形面积(极角排序)
problem L3-021 神坛 (30分) 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如 ...
- 7-4 神坛 (30分)
7-4 神坛 (30分) 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同, ...
- L3-021 神坛 (30 分)
L3-021 神坛 (30 分) 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐 ...
- L3-021 神坛 (30分)(图论)
L3-021 神坛 (30分) 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标 ...
- L3-021 神坛 (30 分)-PAT 团体程序设计天梯赛 GPLT
在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...
- L3-3 神坛 (30分)
在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...
- L3-021 神坛 (30分)
在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...
- PTA:7-4 神坛 (30 分)
一.题目 在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线 ...
- 神坛 (30 分)(立体几何求三个点组成的最小面积)
题目:https://pintia.cn/problem-sets/994805046380707840/problems/994805046577840128 在古老的迈瑞城,巍然屹立着 n 块神石 ...
最新文章
- gvim plugin管理
- 基于 Rancher 的企业 CI/CD 环境搭建
- php closure invoke,PHP Closure类详解
- IDEA中常用快捷键整理及重置快捷键
- Shell语法—— while 条件语句
- excel单元格内容合并
- c语言 static的用法
- 当我们在聊 Serverless 时你应该知道这些 | CSDN博文精选
- java短视频上传阿里云流程_短视频上传
- python矢量裁剪栅格代码_Python中使用面状矢量裁剪栅格影像,并依据Value值更改矢量属性...
- python之字典的操作
- python itertools卡死_Python使用itertools模块来解决算法问题,python
- arm 跑马灯 linux,ARM开发板(S3C2440)上LED灯驱动及跑马灯的实现
- 【汇编优化】之汇编中的指针操作
- CakePHP中文手册【翻译】-Cake Blog创建指南
- 【Python+OpenCV】Windows+Python3.6.0(Anaconda3)+OpenCV3.2.0安装配置
- Windows服务器配置与管理-------DHCP服务器搭建与管理
- 基于ssm java医院病历管理系统
- 如何把SWF转为PDF文件
- 关于 打印页面 图片被截断
热门文章
- 图片处理命令行工具ImageMagick介绍
- php 定义变量为什么前面加一个美元($)符号呢
- Hyperspectral Imagery Classification Based on Contrastive Learning
- python内置函数返回序列中最大元素_Python 内置函数 ____________ 用来返回序列中的最大元素。_学小易找答案...
- Idea中导入多个项目在同一工作空间。
- 「内容管理系统」34个无头CMS应该在你的技术雷达上
- pptx,docx,xlsx 文件下载问题
- [2011-6-8]EiISTP检索的第三届计算智能与软件工程(CiSE 2011)国际学术会议
- Cisco服务器http显示内容,cisco路由怎样开启http服务
- 信息安全(一)之椭圆曲线方程