L3-021 神坛
在古老的迈瑞城,巍然屹立着 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
样例解释
输出的数值等于图中红色或紫色框线的三角形的面积。

当你不会时:请记住最简单粗暴的方法(暴力版)

分析原因:是哪超时了呢,是因为什么超时的
得到结论:第三层for循环时,大部分时间都在进行无效的重复计算
大胆尝试:有没有什么办法可以让它不重复或者少重复呢


很不幸,还是如此,并没有得到跟多的分数,怎么办
--》时间不够,那就只能放弃了
--》还有时间,我能行,我可以的,我一定行
总结:三层循环嵌套肯定是不行了,我已经进全力优化了,到达极限了,不行啊。
极限分析:既然三层不行,那两层能不能实现呢,多写几个第二层的循环代替第三层行不行呢,试试???!!!


分析:很不错,又混了两分,目的达到了,超时问题已解决,接下来再试试能不能解决答案错误问题。为什么错了呢??????????????
结论:原来是因为 不相邻的两条边组成的三角形也可能比相邻的要小。
再想想办法,马上就要出来了。

//高数下第八章知识 向量的外积 = |a||b|sin <a,b>
// 而三角形的面积公式 S =1/2 |a||b|sin <a,b>

没注意横纵坐标范围(+10^9),MinArea给小了,而且由于有乘法,bouble把不够用
上天总是会眷顾努力的人,不是吗
相信自己,你可以的,你能行


完整源代码:
#include <iostream>
#include<bits/stdc++.h>
#include <cmath>
using namespace std;struct Point{long long x;//x坐标long long y;//y坐标
}p[5001];bool cmp(Point a,Point b){//按顺时针排序return b.y*a.x>b.x*a.y;}int main(){int n;scanf("%d",&n);for(int i=0; i<n; i++)scanf("%lld %lld",&p[i].x,&p[i].y);//scanf()的效率比cin高 long long MinArea=1e18;for(int i=0; i<n; i++){Point sides[n]; //每个点都能和其他n-1个点组成n-1条向量边 int k=0;for(int j=0; j<n; j++){if(i==j) continue; sides[k++] = {p[j].x-p[i].x , p[j].y-p[i].y};//向量边 p[j]-p[i] }sort(sides,sides+k,cmp);for(int j=1; j<k; j++){ //这是嵌套在第一层里面的第二循环,而不是嵌套在第二层里面的第三层循环 //三角形向量面积公式 S = 1/2 * | xA*yB - xB*yA |MinArea = min(MinArea,abs(sides[j].x*sides[j-1].y - sides[j-1].x*sides[j].y)); } } printf("%.3f",MinArea/2.0); return 0;
}
相关文章:
L3-021 神坛
在古老的迈瑞城,巍然屹立着 n 块神石。长老们商议,选取 3 块神石围成一个神坛。因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好。特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面积…...
ArrayList和LinkedList区别
List<TreeNode> list new ArrayList<TreeNode>(); List<TreeNode> allTrees new LinkedList<TreeNode>(); 这两行代码都是用来创建一个存储多个 TreeNode 对象的列表,但是它们使用的底层实现不同。 ArrayList 是一种数组实现的动态数组&…...
977. 有序数组的平方 1. 两数之和 349. 两个数组的交集
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 …...
Mysql问题:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
1 问题描述 使用Navicat连接到MySQL(版本:8.0.18),执行查询: select * from t_user WHERE user_name admin查询结果没有问题,但是报错: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY claus…...
Idea springboot springCloud热加载热调试常用的两种方式
场景描述 在项目开发的过程中,需要修改调试的时候偶每次都需要重启项目浪费时间,下面是我整理的两种常用的两种方式方式一 修改启动配置方式(主要针对debug模式下) 点击启动配置》edit configrations… configration下面修改Upd…...
银河麒麟V10SP1高级服务器版本离线RPM方式升级openssl openssh 自动化升级系统补丁实战实例全网唯一
银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主机系统可靠性、安全性、性能、扩展性和实时性等需求,依据CMMI5级标准研制的提供内生本质安全、云原生支…...
2023-3-9-一篇简短的文章把C++左右值关系讲的透透彻彻
目录前言C左值和右值二、右值引用二、右值引用前言 对于C的左值和右值相信很多人都没有一个很透彻的了解,之前我也是不懂的时候查阅了好多文章,但是讲完我还是一头雾水,直到我遇到一篇宝藏文章,讲的左值右值的关系以及Move函数的用法是相当的清楚,文章链接在这,话不多说讲解一…...
Vue3这样子写页面更快更高效
在开发管理后台过程中,一定会遇到不少了增删改查页面,而这些页面的逻辑大多都是相同的,如获取列表数据,分页,筛选功能这些基本功能。而不同的是呈现出来的数据项。还有一些操作按钮。 对于刚开始只有 1,2 个页面的时候大多数开发者可能会直接将之前的页面代码再拷贝多…...
锐捷AP设置限速(胖模式)
基于整个AP限速命令 Ruijie(config)#wlan-qos ap-based { per-user-limit | total-user-limit } { down-streams | up-streams } average-data-rate average-data-rate burst-data-rate burst-data-rate per-user-limit 对AP上的每个用户进行限速 …...
聚势合力,电巢与SDIA协会“战略合作签约仪式”圆满落成
前言: 2023年03月02日下午,电巢科技与深圳市平板显示行业协会齐聚深圳南山电巢XR演播厅,共同举办了隆重的战略合作签约仪式。 双方就数字化建设、品牌赋能、人才培养、技术创新等企业服务深入合作上达成一致,合力为产业赋能&…...
Linux安装后基础配置--网络--ssh--基本软件
安装教程比较多就不写了。 网络配置 设置虚拟网络 修改网络配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33将ONBOOT由no改为yes: 修改为静态网络 /etc/sysconfig/network-scripts/ifcfg-eth33 BOOTPROTOstatic IPADDR192.168.1.129 GATEWAY192.168…...
剑指 Offer 66. 构建乘积数组
剑指 Offer 66. 构建乘积数组 难度:middle\color{orange}{middle}middle 题目描述 给定一个数组 A[0,1,…,n−1]A[0,1,…,n-1]A[0,1,…,n−1],请构建一个数组 B[0,1,…,n−1]B[0,1,…,n-1]B[0,1,…,n−1],其中 B[i]B[i]B[i] 的值是数组 AAA…...
1.1 误差的来源
不难发现,考察用计算机解决科学计算问题时所经历的几个环节(如图1-1所示),其中每一步都可能产生误差,首先,数学模型是通过对实际问题进行抽象与简化得到的,它与实际问题之间有误差.数学模型与实…...
python进程间通信
进程间通信表示进程之间的数据交换。 为了开发并行应用程序,需要在进程间交换数据。 下图显示了多个子过程之间同步的各种通信机制 - 各种通信机制 队列 队列可以用于多进程程序。 多处理模块的Queue类与Queue.Queue类相似。 因此,可以使用相同的API…...
麒麟Linux操作系统磁盘策略永久调整为deadline
1.前言在安装数据库,比如达梦数据库时,为获取磁盘最佳性能,一般要将数据磁盘设置为deadline。2. 修改磁盘调度算法2.1临时修改假设磁盘为sda,echo deadline > /sys/block/sda/queue/scheduler2.2通用机永久修改grubby --update-kernelALL …...
yum安装Docker(CentOS7.9)
目录 一、安装环境 编写yum源(根据系统版本) 二、安装docker-ce 默认安装docker-ce是最新版本 ps:安装不成功则需要安装container-selinux,下载网络yum源,再安装docker-ce即可 #查看dcoker-ce所产生的文件路径 三、启动docker 四、配置镜像加速器…...
c++错误 free(): double free detected
记一次bug调试。。。。 我定义了一个类,测试的时候,调用它的方法出现了free(): double free detected ,但是调用其他方法是正常的。这个错误,字面意思就是检测到了双重释放。是指对于同一块内存,释放了两次。 我的类…...
12升400V 升压DC-DC高压脱毛仪解决方案SC3671
ipl(intense pulsed light,强脉冲光)脱毛,也叫光子脱毛,是市场上的一种新型脱毛技术和美容方法,其利用强脉冲光特殊的波长和光热效应实现破坏毛囊并达到永久脱毛的效果,具有速度快,效果好,安全性…...
h264格式分析
h264格式分析一.简介二.h264编码原理1.帧间压缩2.帧内压缩三.编码结构1.IDR帧2.解码顺序四.NALU1.nalu头信息2.annexb模式一.简介 h264是一种视频编码标准,又叫Advanced Video Codec,即AVC 二.h264编码原理 1.帧间压缩 通过I、B、P帧实现帧间压缩 I…...
【数据分析师求职面试指南】实战技能部分
文章目录必备技能数据人员如何创造价值完整的指标体系构建数据监控集报表设计设计一份优质的数据分析报告基于互联网大数据的应用A B 测试用户画像完整的数据挖掘项目流程1. 分析问题,明确目标2.模型可行性分析3.选取模型4.选择变量5.特征工程6.建立模型&效果…...
BetterNCM插件管理器实战指南:网易云音乐扩展架构深度解析
BetterNCM插件管理器实战指南:网易云音乐扩展架构深度解析 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer是一款基于Rust语言开发的网易云音乐插件管理…...
如何用Tuna插件在OBS中实现专业级音乐信息显示:5分钟快速配置指南
如何用Tuna插件在OBS中实现专业级音乐信息显示:5分钟快速配置指南 【免费下载链接】tuna Song information plugin for obs-studio 项目地址: https://gitcode.com/gh_mirrors/tuna1/tuna 想要让直播观众实时了解你正在播放的歌曲信息吗?Tuna插件…...
从零训练专属风格模板:Midjourney V6.2风格参考+ControlNet协同工作流(含Stable Diffusion双向映射对照表)
更多请点击: https://intelliparadigm.com 第一章:Midjourney风格参考功能详解 Midjourney 的风格参考(Style Reference,简称 --sref)是一项强大的图像一致性控制机制,允许用户将一张参考图的视觉风格&…...
ExifToolGUI终极指南:告别繁琐,用图形界面批量管理照片元数据
ExifToolGUI终极指南:告别繁琐,用图形界面批量管理照片元数据 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾面对成百上千张照片,想要批量修改拍摄时间、统一添…...
终极指南:如何用免费AI转PSD工具实现矢量图层无损转换?
终极指南:如何用免费AI转PSD工具实现矢量图层无损转换? 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 你是否在Adobe…...
Shotgun Code最佳实践:10个提高AI代码生成质量的关键技巧
Shotgun Code最佳实践:10个提高AI代码生成质量的关键技巧 【免费下载链接】shotgun_code One‑click codebase “blast” for Large‑Language‑Model workflows. 项目地址: https://gitcode.com/gh_mirrors/sh/shotgun_code Shotgun Code作为一款面向大语言…...
基于C语言实现(控制台)小型文件系统
♻️ 资源 大小: 3.40MB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87430288 小型文件系统 一、需求分析 1.1 小型文件系统介绍 科技的进步已将人类带入了信息大爆炸的时代,随着计算机科学技术的不断发展,计算…...
用Java+MySQL从零搭建一个鲜花商城,我踩过的这些坑你别再踩了(附完整源码)
用JavaMySQL从零搭建一个鲜花商城,我踩过的这些坑你别再踩了(附完整源码) 去年毕业设计选题时,我毫不犹豫选择了"鲜花商城系统"这个看似简单的项目。本以为用JavaMySQL组合开发一个基础电商平台是水到渠成的事ÿ…...
把旧笔记本变成第二台电脑的“上网卡”:Win10/11网络共享实战指南
旧笔记本秒变网络共享中心:Windows ICS高阶配置指南 你是否遇到过这样的场景:书房里的台式机没有无线网卡,而客厅的旧笔记本却闲置着?其实只需一根网线,就能让这台"退役"设备重新上岗,成为全屋网…...
Thermal Clad金属基板设计与成本优化实战指南
1. 电路设计基础与Thermal Clad特性解析在电子工程领域,电路板设计直接决定了最终产品的性能、可靠性和成本。作为一名有十年硬件设计经验的工程师,我深刻体会到优秀的设计需要在电气性能、热管理和机械强度之间取得平衡。Thermal Clad(热覆金…...
