当前位置: 首页 > news >正文

【ZOJ 1090】The Circumference of the Circle 题解(海伦公式+正弦定理推论)

计算圆的周长似乎是一项简单的任务——只要你知道它的直径。但如果你没有呢?
我们给出了平面中三个非共线点的笛卡尔坐标。
您的工作是计算与所有三个点相交的唯一圆的周长。

输入规范
输入文件将包含一个或多个测试用例。每个测试用例由一条包含六个实数x1、y1、x2、y2、x3、y3的线组成,代表三个点的坐标。由三个点确定的圆的直径永远不会超过一百万。输入在文件结束时终止。
输出规格
对于每个测试用例,打印一条包含一个实数的线,说明由三个点确定的圆的周长。周长应精确打印为两位小数。pi的值约为3.141592653589793。

Sample Input
0.0 -0.5 0.5 0.0 0.0 0.5
0.0 0.0 0.0 1.0 1.0 1.0
5.0 5.0 5.0 7.0 4.0 6.0
0.0 0.0 -1.0 7.0 7.0 7.0
50.0 50.0 50.0 70.0 40.0 60.0
0.0 0.0 10.0 0.0 20.0 1.0
0.0 -500000.0 500000.0 0.0 0.0 500000.0
Sample Output
3.14
4.44
6.28
31.42
62.83
632.24
3141592.65

思路

给三个点坐标求圆的周长,鉴定为纯纯的数学题。先由三个点坐标可以求出三角形三边边长,然后由海伦-秦九韶公式求三角形面积,根据正弦定理推论可以求外接圆的半径,最后由圆的半径求圆的周长。

AC代码

#include <iostream>
#include <cstdio>
#include <cmath>
#define AUTHOR "HEX9CF"
using namespace std;#define PI 3.141592653589793int main(){double a, b, c, d, e, f;while(cin >> a >> b >> c >> d >> e >> f){double x = sqrt(pow(a - c, 2) + pow(b - d, 2));double y = sqrt(pow(a - e, 2) + pow(b - f, 2));double z = sqrt(pow(e - c, 2) + pow(f - d, 2));double p = (x + y + z) / 2;double s = sqrt(p * (p - x) * (p - y) * (p - z));double r = (x * y * z) / (4 * s);double cir = 2. * PI * r;printf("%.2lf\n", cir);}return 0;
}

相关文章:

【ZOJ 1090】The Circumference of the Circle 题解(海伦公式+正弦定理推论)

计算圆的周长似乎是一项简单的任务——只要你知道它的直径。但如果你没有呢&#xff1f; 我们给出了平面中三个非共线点的笛卡尔坐标。 您的工作是计算与所有三个点相交的唯一圆的周长。 输入规范 输入文件将包含一个或多个测试用例。每个测试用例由一条包含六个实数x1、y1、x…...

【go】slice原理

slice包含3个部分&#xff1a; 1.内存的起始位置 2.切片的大小(已经存放的元素数量) 3.容量(可以存放的元素数量) 使用make初始化切片会开辟底层内存&#xff0c;并初始化元素值为默认值&#xff0c;如数字为0&#xff0c;字符串为空 使用New初始化切片不会开辟底层数组&…...

【数据库】MySQL概念知识语法-基础篇(DQL),真的很详细,一篇文章你就会了

目录通用语法及分类DQL&#xff08;数据查询语言&#xff09;基础查询条件查询聚合查询&#xff08;聚合函数&#xff09;分组查询排序查询分页查询内连接查询外连接查询自连接查询联合查询子查询列子查询行子查询表子查询总结通用语法及分类 ● DDL: 数据定义语言&#xff0c…...

博客界的至高神:属于自己的WordPress网站,你值得拥有!

【如果暂时没时间安装&#xff0c;可以直接跳转到最后先看展示效果】 很多朋友都想有一个对外展示的窗口&#xff0c;在那里放一些个人的作品或者其他想对外分享的东西。大部分人选择了在微博、公众号等平台&#xff0c;毕竟这些平台流量大&#xff0c;我们可以很轻易地把自己…...

操作系统(day13)-- 虚拟内存;页面分配策略

虚拟内存管理 虚拟内存的基本概念 传统存储管理方式的特征、缺点 一次性&#xff1a; 作业必须一次性全部装入内存后才能开始运行。驻留性&#xff1a;作业一旦被装入内存&#xff0c;就会一直驻留在内存中&#xff0c;直至作业运行结束。事实上&#xff0c;在一个时间段内&…...

SQL零基础入门学习(四)

SQL零基础入门学习&#xff08;三&#xff09; SQL INSERT INTO 语句 INSERT INTO 语句用于向表中插入新记录。 SQL INSERT INTO 语法 INSERT INTO 语句可以有两种编写形式。 第一种形式无需指定要插入数据的列名&#xff0c;只需提供被插入的值即可&#xff1a; INSERT …...

19岁就患老年痴呆!这些前兆别忽视!

在大部分人的印象中&#xff0c;阿尔兹海默症好像是专属于老年人的疾病&#xff0c;而且它的另一个名字就是老年痴呆症。然而&#xff0c;前不久&#xff0c;一位19岁的男生患上了阿尔兹海默症&#xff0c;是迄今为止最年轻的患者。这个男生从17岁开始&#xff0c;就出现了注意…...

【C++】thread|mutex|atomic|condition_variable

本篇博客&#xff0c;让我们来认识一下C中的线程操作 所用编译器&#xff1a;vs2019 阅读本文前&#xff0c;建议先了解线程的概念 &#x1f449; 线程概念 1.基本介绍 在不同的操作系统&#xff0c;windows、linux、mac上&#xff0c;都会对多线程操作提供自己的系统调用接口…...

学成在线项目笔记

业务层开发 DAO开发示例 生成实体类对应的mapper和xml文件 定义MybatisPlusConfig&#xff0c;用于扫描mapper和配置分页拦截器 MapperScan("com.xuecheng.content.mapper") Configuration public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor myb…...

FreeRTOS队列

队列简介队列是一种任务到任务&#xff0c;任务到中断&#xff0c;中断到任务数据交流得一种机制。在队列中可以存储数量有限&#xff0c;大小固定得多个数据&#xff0c;队列中的每一个数据叫做队列项目&#xff0c;队列能够存储队列项目的最大数量称为队列的长度&#xff0c;…...

rancher2安装nfs-subdir-external-provisioner为PVC/PV动态提供存储空间(动态分配卷)

接上一篇《centos7部署rancher2.5详细图文教程》 一、 安装nfs服务 1. 所有节点都需要操作 $ # 下载 nfs 相关软件 $ sudo yum -y install nfs-utils rpcbind$ # 启动服务并加入开机自启 $ sudo systemctl start nfs && systemctl enable nfs $ sudo systemctl star…...

1.JAVA-JDK安装

前言&#xff1a;工具下载地址阿里云盘&#xff1a;Java-Jdk&#xff1a;https://www.aliyundrive.com/s/JpV55xhVq2A提取码: j53y一、jdk下载&#xff1a;前往Oracle官网可免费下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/ 此处我下载的是jdk8&a…...

Java必备小知识点4——数据类型、数组、位运算符

数据类型Java的数据类型由基本数据类型和引用类型基本数据类型和C语言的一致&#xff0c;除了基本类型其余的都是引用类型。引用类型主要有&#xff1a;类&#xff08;class&#xff09;、接口&#xff08;interface&#xff09;、数组、枚举&#xff08;enum)、注解&#xff0…...

麦克风分类汇总

1.麦克风分类汇总 1)按声电转换原理分为&#xff1a;电动式&#xff08;动圈式、铝带式&#xff09;&#xff0c;电容式&#xff08;直流极化式&#xff09;、压电式&#xff08;晶体式、陶瓷式&#xff09;、以及电磁式、碳粒式、半导体式等。 2)按声场作用力分为&#xff1a…...

九龙证券|机制改革激发转融券活力 全面注册制释放两融展业新空间

在全面注册制准则规矩正式发布的同时&#xff0c;修订后的转融通事务规矩也应约与商场碰头。2月17日&#xff0c;中证金融发布《中国证券金融公司转融通事务规矩&#xff08;试行&#xff09;&#xff08;2023年修订&#xff09;》等规矩&#xff08;简称“转融通新规”&#x…...

6——JVM调优工具详解及调优实战

Jmap、Jstack、Jinfo命令详解 Jmap 此命令可以用来查看内存信息&#xff0c;实例个数&#xff0c;以及占用内存大小 生成dump文件 把dump文件装入Jvisvalvm进行分析 Jstack Jstack加进程id查找死锁 Jstack找出占CPU最高的线程堆栈信息 top -p 进程号&#xff1a;显示进程…...

AcWing语法基础课笔记 第八章 C++ STL 第九章 位运算与常用库函数

第八章 C STL 第八章 C STL 1.#include <vector> 2.#include<queue> 3.#include <stack> 4.#include <deque> 5.#include <set> 6.#include<map> 第九章 位运算与常用库函数 STL是提高C编写效率的一个利器。 ——闫…...

Qt中的多线程

Qt中有多种方法实现多线程&#xff1a; QThreadQThreadPool和QPunnable&#xff08;重用线程&#xff09;Qt ConcurrentWorkerScript&#xff08;QML中的线程&#xff09;QThread 在上两篇文章中已经解释了&#xff0c;这里就不再赘述。 QThreadPoo和QRunnable&#xff08;实现…...

React-Hooks怎样封装防抖和节流-面试真题

Debounce debounce 原意消除抖动&#xff0c;对于事件触发频繁的场景&#xff0c;只有最后由程序控制的事件是有效的。 防抖函数&#xff0c;我们需要做的是在一件事触发的时候设置一个定时器使事件延迟发生&#xff0c;在定时器期间事件再次触发的话则清除重置定时器&#xff…...

算法训练营 day51 动态规划 打家劫舍系列

算法训练营 day51 动态规划 打家劫舍系列 打家劫舍 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#…...

HFSS仿真结果怎么看?一文读懂S参数与电场图,让你的T型波导分析不再迷茫

HFSS仿真结果深度解析&#xff1a;从S参数到电场图的工程实践指南面对HFSS仿真生成的复杂数据图表&#xff0c;许多工程师常陷入"看得见数据却读不懂含义"的困境。本文将带您穿透数据表象&#xff0c;掌握T型波导性能分析的核心方法论。1. S参数&#xff1a;波导性能…...

Win10系统清理避坑指南:你的BAT脚本真的安全吗?盘点那些不能乱删的文件

Win10系统清理避坑指南&#xff1a;BAT脚本安全操作手册每次看到那些号称"一键清理系统垃圾"的BAT脚本在技术论坛被疯狂转发&#xff0c;我的工程师朋友老张就会忍不住摇头。上周他刚帮一位设计师修复了崩溃的Photoshop——原因正是某个清理脚本删除了Adobe的临时工作…...

从入门到实践:EEG公开数据集分类与应用场景全解析

1. EEG公开数据集入门指南刚接触脑电信号分析的研究者&#xff0c;常常会被一个问题困扰&#xff1a;"我应该从哪里获取可靠的EEG数据&#xff1f;"作为一个在这个领域摸爬滚打多年的研究者&#xff0c;我完全理解这种困惑。记得我第一次接触EEG研究时&#xff0c;光…...

如何让Rhino 3D模型在Blender中保持完整数据:import_3dm插件深度解析

如何让Rhino 3D模型在Blender中保持完整数据&#xff1a;import_3dm插件深度解析 【免费下载链接】import_3dm Blender importer script for Rhinoceros 3D files 项目地址: https://gitcode.com/gh_mirrors/im/import_3dm 当建筑师需要在Blender中渲染Rhino设计的建筑模…...

第三卷第4章:原型模式设计思想

第三卷第4章:原型模式设计思想 目录介绍 01.案例引入与思考 1.1 痛点场景 1.2 它哪里不舒服 1.3 引出本篇主角 02.原型模式介绍 2.1 原型模式由来 2.2 原型模式定义...

关联规则挖掘在Calabi-Yau流形Hodge数分析中的应用与复现

1. 项目概述&#xff1a;当数据挖掘遇见高维几何在理论物理和代数几何的交叉领域&#xff0c;Calabi-Yau流形一直扮演着核心角色。这些具有特殊拓扑结构的空间&#xff0c;不仅是弦理论中额外维度紧化的关键候选者&#xff0c;其本身丰富的数学性质也吸引着无数研究者。然而&am…...

基于Cynthion逆向USB协议,为DP100电源开发Linux控制软件

1. 项目概述&#xff1a;用Cynthion嗅探USB&#xff0c;为DP100电源打造Linux软件作为一名长期在Linux环境下折腾硬件和嵌入式开发的爱好者&#xff0c;我经常遇到一个头疼的问题&#xff1a;很多不错的桌面小设备&#xff0c;比如电源、示波器、逻辑分析仪&#xff0c;它们的官…...

告别手动复制!用这个自定义编辑器脚本一键备份/克隆Unity Terrain Data

告别手动复制&#xff01;用这个自定义编辑器脚本一键备份/克隆Unity Terrain Data在Unity关卡设计和技术美术的工作流中&#xff0c;地形数据的灵活复用往往意味着反复的手动操作——导出高度图、备份材质参数、复制植被分布&#xff0c;每个环节都可能成为效率瓶颈。想象这样…...

如何扩展GASShooter:添加新武器、新能力与新游戏机制的终极指南

如何扩展GASShooter&#xff1a;添加新武器、新能力与新游戏机制的终极指南 【免费下载链接】GASShooter Advanced FPS/TPS Sample Project for Unreal Engine 4s GameplayAbilitySystem plugin 项目地址: https://gitcode.com/gh_mirrors/ga/GASShooter GASShooter是Un…...

D2DX如何让暗黑破坏神2在4K显示器上流畅运行:5个关键技术解析

D2DX如何让暗黑破坏神2在4K显示器上流畅运行&#xff1a;5个关键技术解析 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 当…...