UVa 11524:In-Circle(解析几何)
Problem E
In-Circle
Input: Standard Input
Output: Standard Output
In-circle of a triangle is the circle that touches all the three sides of the triangle internally. The center of the in-circle of a triangle happens to be the common intersection point of the three bisectors of the internal angles. In this problem you will not be asked to find the in-circle of a triangle, but will be asked to do the opposite!!
You can see in the figure above that the in-circle of triangle ABC touches the sides AB, BC and CA at point P, Q and R respectively and P, Q and R divides AB, BC and CA in ratio m1:n1, m2:n2 and m3:n3 respectively. Given these ratios and the value of the radius of in-circle, you have to find the area of triangle ABC.
Input
First line of the input file contains an integer N (0<N<50001), which denotes how many input sets are to follow. The description of each set is given below.
Each set consists of four lines. The first line contains a floating-point number r (1<r<5000), which denotes the radius of the in-circle. Each of the next three lines contains two floating-point numbers, which denote the values of m1, n1, m2, n2, m3 and n3 (1<m1, n1, m2, n2, m3, n3<50000) respectively.
Output
For each set of input produce one line of output. This line contains a floating-point number that denotes the area of the triangle ABC. This floating-point number should contain four digits after the decimal point. Errors less than 5*10-3 will be ignored. Use double-precision floating-point number for calculation.
Sample Input Output for Sample Input
|
2 140.9500536497 15.3010457320 550.3704847907 464.9681681852 65.9737378230 55.0132446384 10.7791711946 208.2835101182 145.7725891419 8.8264176452 7.6610997600 436.1911036207 483.6031801012 140.2797089713 |
400156.4075 908824.1322 |
Problemsetter: Shahriar Manzoor
Special Thanks: Mohammad Mahmudur Rahman
解析几何。
思路是先设AP=AC=x,则根据比例关系可以知道:
三边 a = (n1+m1)/m1*x; b = (n3+m3)/n3*x; c = m3/n3*(n2+m2)/n2*x;
将系数提出,设 k1 = (n1+m1)/m1; k2 = (n3+m3)/n3; k3 = m3/n3*(n2+m2)/n2;
由海伦公式可知 S = sqrt(p*(p-a)*(p-b)*(p-c)); (p = (a+b+c)/2) //公式一
由边和半径的也能求出三角形的面积 S = (a*r+b*r+c*r)/2 = p*r; //公式二
联立公式一和公式二可得:
x = 2*sqrt(r*r*(k1+k2+k3)/((k2+k3-k1)*(k1+k3-k2)*(k1+k2-k3)));
带入公式一得:
S = (k1+k2+k3)*x*r/2;
PS:代码很短,主要是分析过程。
代码:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--){
double r;
double m1, n1, m2, n2, m3, n3;
cin>>r; //输入半径
cin>>m1>>n1>>m2>>n2>>m3>>n3; //输入比例
double k1,k2,k3;
k1 = (n1+m1)/m1;
k2 = m3*(n2+m2)/(n3*n2);
k3 = (n3+m3)/n3;
double x = *sqrt(r*r*(k1+k2+k3)/((k2+k3-k1)*(k1+k3-k2)*(k1+k2-k3))); //设AP=AR=x
double s = (k1+k2+k3)*x*r/;
cout<<setiosflags(ios::fixed)<<setprecision();
cout<<s<<endl;
}
return ;
}
Freecode : www.cnblogs.com/yym2013
UVa 11524:In-Circle(解析几何)的更多相关文章
- UVa 11524 - InCircle
推公式 #include <cstdio> #include <cmath> double Cal( double a, double b, double c ) { retu ...
- uva 11524 - InCircle (二分法)
题意:三角形ABC的内切圆把它的三边分别划分成 m1:n1,m2:n2 和 m3:n3 的比例.另外已知内切圆的半径 r ,求三角形ABC 的面积. #include<iostream> ...
- ACM计算几何题目推荐
//第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...
- uva 1463 - Largest Empty Circle on a Segment(二分+三分+几何)
题目链接:uva 1463 - Largest Empty Circle on a Segment 二分半径,对于每一个半径,用三分求出线段到线段的最短距离,依据最短距离能够确定当前R下每条线段在[0 ...
- .Uva&LA部分题目代码
1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...
- UVA 1452 八 Jump
Jump Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Practi ...
- UVA - 524 Prime Ring Problem(dfs回溯法)
UVA - 524 Prime Ring Problem Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & % ...
- BZOJ 1502: [NOI2005]月下柠檬树 [辛普森积分 解析几何 圆]
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1070 Solved: 596[Submit][Status] ...
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
随机推荐
- sleep()
经常看到线程中用sleep(),到底是什么用处,下面讲的比较通俗: 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: ...
- ECSHOP后台商品列表显示商品缩略图
ECSHOP后台商品列表显示商品缩略图 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2013-11-06 ecshop 后台商品列表显示商品缩略图,大楷步凑如下: ...
- SSH整合之spring整合hibernate
SSH整合要导入的jar包: MySQL中创建数据库 create database ssh_db; ssh_db 一.spring整合hibernate带有配置文件hibernate.cfg.xml ...
- 改变了Tomcat路径后无法卸载和重装的解决办法
错误如下: ---------------------------Apache Tomcat Setup---------------------------Failed to install Tom ...
- Centos 5.x/6.x 配置163网易yum源
Centos系统默认都是系统自带的yum源,国内用户用yum源安装比较慢,为了提高效率,一般我们会配置国内的yum源.国内比较好的yum源有网易yum源.搜狐yum源等. 我感觉网易的yum源比较好用 ...
- mySQL 增量备份方案(转)
1.在 /etc/my.cnf 下面设置开启bin-log 编辑 vim /etc/my.cnf [mysqld] binlog_format = MIXED ...
- BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler错误的解决方法
出现这个问题是因为我的spring3.0里的包是单独引用的,缺少了别的包 譬如Configuration problem: Unable to locate Spring NamespaceHandl ...
- win7电脑安装wamp出现httpd.exe无法找到组件MSVCR100.dll的解决办法
昨天重新安装了系统,今天想装一个wamp,在安装过程中报httpd.exe无法找到组件 如图u 运行wamp,发现图标是黄色的,apache没有选中,测试80端口也未被占用. 重新卸载了,又安装了一遍 ...
- lamp 网站打不开,不显示也不报错,
原因是该网站的编程员,习惯简写,<? ?>;而服务器版本的php.ini 默认不支持只支持<?php ?>这种格式. 解决方法vim /usr/loacl/php/etc/ph ...
- Matlab图像处理入门
1. Matlab基础 1.1 数据格式 Matlab默认的数据格式为双精度浮点数的矩阵或数组,同时支持其它数据类型.Matlab将单变量看作1´1的数组.Matlab支持的数据类型如下: 索 ...