链接:https://ac.nowcoder.com/acm/problem/23871
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino学习圆与直线的位置关系。
众所周知,直线和圆有三种位置关系:相离、相切、相割,主要根据圆心到直线的距离来判定。

现在我们来看看作业吧:


示例1
输入
复制

2 2 1 3 1 2

输出
复制

1

证明:|BD| x |BE| = |AB| ^ 2 - |AE| ^ 2 (‘ ^ 2 ’这里代表平方)
解:
证明:
如下图所示,过A点作直线CB的垂线,交点为O,连接AO,AE,AB

由勾股定理得:
AE ^ 2 = EO ^ 2 + AO ^ 2
AB ^ 2 = BO ^ 2 + AO ^ 2
所以:
AE ^ 2 - EO ^ 2 = AB ^ 2 - BO ^ 2
因为:
BO = BD + DO
DO = EO
所以:
BO = BD + EO
AE ^ 2 - EO ^ 2 = AB ^ 2 - ( BD + EO) ^ 2
AE ^ 2 - EO ^ 2 = AB ^ 2 - BD ^ 2 -2BD x EO - EO ^ 2
AE ^ 2 = AB ^ 2 - BD ^ 2 - 2BD x EO
又因为:
EO = (1/2)DE
DE = BE - BD
所以:
AE ^ 2 = AB ^ 2 - BD ^ 2 - 2BD x(1/2)x( BE - BD)
AE ^ 2 = AB ^ 2 - BD x BE
所以:|BD| x |BE| = |AB| ^ 2 - |AE| ^ 2

AC_code:
way1:
根据上述证明:

#include <bits/stdc++.h>
using namespace std;
int main()
{double x0,y0,r,x1,y1,y2;cin>>x0>>y0>>r>>x1>>y1>>y2;double ans = pow(y1-y0,2) + pow(x1-x0,2) - pow(r,2);cout.precision(0);cout<<fixed<<ans<<endl;return 0;
}

way2:
直接算出D,E两点坐标
圆方程:(x-a) ^ 2 + (y - b) ^ 2 = r ^ 2
直线方程: y = kx + b

#include <bits/stdc++.h>
using namespace std;
int main()
{double x0,y0,r,x1,y1,y2;cin>>x0>>y0>>r>>x1>>y1>>y2;double k = (y1-y2)/x1;double a = pow(k,2) + 1.0;double b = 2*(-x0+k*(y2-y0));double c = pow(x0,2)+pow(y2-y0,2)-pow(r,2);double tmp = pow(b,2)-4*a*c;double t = sqrt(tmp);//cout<<k<<" "<<a<<" "<<b<<" "<<c<<" "<<tmp<<" "<<t<<endl;double aim_x1 = (-b-t)/(2*a);double aim_x2 = (-b+t)/(2*a);double aim_y1 = k*aim_x1 + y2;double aim_y2 = k*aim_x2 + y2;//cout<<aim_x1<<" "<<aim_y1<<" "<<aim_x2<<" "<<aim_y2<<endl;double BD = sqrt(pow(aim_y2-y1,2)+pow(aim_x2-x1,2));double BE = sqrt(pow(aim_y1-y1,2)+pow(aim_x1-x1,2));double ans = BD*BE;//cout<<BD<<" "<<BE<<endl;cout.precision(0);cout<<fixed<<ans<<endl;return 0;
}

Chino with Geometry(数学,计算几何,记录一下推导证明)相关推荐

  1. 中小学计算机听课记录表,小学数学听课记录范文表格

    小学数学听课记录范文表格,以下是大学网小编精心整理的相关内容,希望对大家有所帮助! 小学数学听课记录范文表格 篇一 执教者 丁衡江 听课教师 年级班级 五年级 学科 数学 课题 轴对称 课型 新课 教 ...

  2. 数学方程式记录html5动画js特效

    下载地址数学方程式记录html5动画特效,基于canvas画布实现的特效. dd:

  3. 斐波那契数列通项公式的推导证明----举一反三

    斐波那契数列通项公式的推导证明----举一反三 1-前言 2-斐波那契 2-1-什么是斐波那契 2-2-通项公式的证明 2-3-举一反三 1-前言 2021年5月20号的那天,有对象的都忙着约会秀恩爱 ...

  4. 普通最小二乘法的推导证明

    最小二乘法 1.什么是最小二乘思想? ​ 简单地说,最小二乘的思想就是要使得观测点和估计点的距离的平方和达到最小.这里的"二乘"指的是用平方来度量观测点与估计点的远近(在古汉语中& ...

  5. 【寒假每日一题】剪绳子(个人练习)详细题解+推导证明(第六天)

    文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 今天终于出核酸检测的结果,还好大家都没事,不然怕是要封城了!!! 今天还是寒假 ...

  6. 【寒假每日一题】分巧克力(个人练习)详细题解+推导证明(第八天)附带转载程序员壁纸

    文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 话说今天开始准备搞一个秋招的GitHub,算是复习一遍了. 今天还是寒假每日一 ...

  7. 【寒假每日一题】十三号星期五(个人练习)详细题解+推导证明(第十三天)

    文章目录 前言 题目 详细题解 写法1 O(n)O(n)O(n) 推导证明 举一反三 总结 前言 这一周的题,真的是很扎实的基础题. 今天的题目是来自usaco training 1.2. 最近在家呆 ...

  8. 【寒假每日一题】数字三角形(个人练习)详细题解+推导证明(第二天)

    文章目录 前言 题目 详细题解 写法1 O ( n 2 ) O(n^2) O(n2) 推导证明 写法2 O ( n 2 ) O(n^2) O(n2) 推导证明 举一反三 总结 前言 昨天真是人生中奇葩 ...

  9. 【寒假每日一题】棋盘挑战(个人练习)详细题解+推导证明(第十六天)

    文章目录 前言 题目 详细题解 写法1 推导证明 举一反三 总结 前言 今天是经典的深度优先搜索问题,即八皇后问题. 作为经典问题,我发现了一种新的写法,不需要开二维数组即可完成. 题目 给定一个 N ...

最新文章

  1. 标注工具_语料标注工具(2)
  2. Linux--DHCP
  3. 网络爬虫初步:从一个入口链接开始不断抓取页面中的网址并入库
  4. Win8 Metro(C#)数字图像处理--3.3图像直方图计算
  5. android studio升级失败提示 Connection failed解决方法
  6. QOTD:Java线程与Java堆空间
  7. GPL以及Copyleft协议使用率下降明显
  8. Activity(二)
  9. mac os x 10.8 安装python-mysqldb
  10. C++文件操作(打开、关闭、文件读取数据存入数组)
  11. uva 11732 strcmp() Anyone?
  12. 使用Istio分布式跟踪应用程序
  13. cpu 之二 酷睿i3/i5/i7处理器到底简单区别
  14. fiddler和wireshark对比
  15. 安装CommonAPI
  16. mysql建数据库实例_MySQL数据库基础(四)——MySQL数据库创建实例
  17. 计算机连接网线后无法上网,网线插电脑能上网插路由器不能上网了怎么办?
  18. 时钟相位噪声测量中的杂散
  19. SDK接入(之Android Google Play内支付(in-app Billing)接入的细节
  20. 美大学推开源赞助计划 DIY机器人你也办得到

热门文章

  1. 电子产品设计流程_指纹锁生产的八大工序流程
  2. 软件容量测试和压力测试区别,性能测试、负载测试、压力测试、容量测试的区别...
  3. 2015大学计算机基础,2015新生入学大学计算机基础复习资料
  4. 计算机网络-思维导图(6)应用层
  5. 二十七、综合案例数据预处理
  6. shutil python_shutil模块
  7. python中定义变量和数组_Python中的线程和全局变量 - 数组和标准变量之间的区别?...
  8. obj模型转json模型_微软文字转图像技术又进化,提出两种 GAN 的升级模型 | CVPR 2019...
  9. ajax请求后台表格数据,商品后台表格数据的展现方式
  10. java opennlp_OpenNLP中语言检测模型训练和模型的使用