UVA 11731 Ex-circles (外切圆)
题意:给你三角形的三条边,求图中DEF的面积和阴影部分的面积。

题解:一些模板,三角形的旁切圆半径:
、
与
三旁心为
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<string>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define eps 1E-8
/*注意可能会有输出-0.000*/
#define Sgn(x) (x<-eps? -1 :x<eps? 0:1)//x为两个浮点数差的比较,注意返回整型
#define Cvs(x) (x > 0.0 ? x+eps : x-eps)//浮点数转化
#define zero(x) (((x)>0?(x):-(x))<eps)//判断是否等于0
#define mul(a,b) (a<<b)
#define dir(a,b) (a>>b)
typedef long long ll;
typedef unsigned long long ull;
const int Inf=<<;
const ll INF=1ll<<;
const double Pi=acos(-1.0);
const int Mod=1e9+;
const int Max=;
struct point
{
double x,y;
}poi[Max];
double ans1,ans2;
double Jud(double a,double b,double c)
{
//cout << a*a+b*b-c*c << " " << 2*a*b << endl;
return acos((a*a+b*b-c*c)/(*a*b));
}
double Dis(point p1,point p2)
{
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
void Solve(double a,double b,double c)
{
double x1,y1,x2,y2,x3,y3,href;
href=(a+b+c)/;
double S=sqrt(href*(href-a)*(href-b)*(href-c));
x3=y3=x2=;
y2=a;
y1=(a*a+b*b-c*c)/(*a);
x1=sqrt(b*b-y1*y1);
poi[].x=(-a*x1+b*x2+c*x3)/(-a+b+c);
poi[].y=(-a*y1+b*y2+c*y3)/(-a+b+c);
poi[].x=(a*x1-b*x2+c*x3)/(a-b+c);
poi[].y=(a*y1-b*y2+c*y3)/(a-b+c);
poi[].x=(a*x1+b*x2-c*x3)/(a+b-c);
poi[].y=(a*y1+b*y2-c*y3)/(a+b-c);
double aa=Dis(poi[],poi[]);
double bb=Dis(poi[],poi[]);
double cc=Dis(poi[],poi[]);
href=(aa+bb+cc)/;
ans1=sqrt(href*(href-aa)*(href-bb)*(href-cc));
double r1=(*S)/(-a+b+c);
double r2=(*S)/(a-b+c);
double r3=(*S)/(a+b-c);
//cout << aa << " " << bb << " " << cc <<endl;
ans2=(Jud(bb,cc,aa)/)*r1*r1;
ans2+=(Jud(aa,bb,cc)/)*r2*r2;
ans2+=(Jud(cc,aa,bb)/)*r3*r3;
return;
}
int main()
{
int a,b,c;
int coun=;
while(~scanf("%d %d %d",&a,&b,&c))
{
if(!a&&!b&&!c)
break;
Solve((double)a,(double)b,(double)c);
printf("Case %d: %.2f %.2f\n",++coun,ans1,ans2);
}
return ;
}
UVA 11731 Ex-circles (外切圆)的更多相关文章
- UVa 247 - Calling Circles(Floyd求有向图的传递闭包)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVa 247 Calling Circles【传递闭包】
题意:给出n个人的m次电话,问最后构成多少个环,找出所有的环 自己想的是:用map来储存人名,每个人名映射成一个数字编号,再用并查集,求出有多少块连通块,输出 可是map不熟,写不出来,而且用并查集输 ...
- UVA - 247 Calling Circles Floyd判圈
思路:利用的Floyd判圈,如果i能到j,j也能到i说明i和j在同一个圈里.每个人的名字可用map编号.最后DFS打印答案即可. AC代码 #include <cstdio> #inclu ...
- UVa 247 Calling Circles (DFS+Floyd)
题意:如果两个人互通电话,那么他们就在一个电话圈里,现在给定 n 个人,并且给定 m 个通话记录,让你输出所有的电话圈. 析:刚开始没想到是Floyd算法,后来才知道是这个算法,利用这个算法进行连通性 ...
- UVA LIVE-4642 - Malfatti Circles
给出三角形三个顶点,求出三个互切的圆的半径 尽管大白鼠说能够推出公式,但是这个公式仅仅怕没那么easy推--我左看右看上看下看也推不出. 应该是要做辅助线什么的,那也-- 因为非常easy就推出了关于 ...
- UVA 247 - Calling Circles (Floyd)
互相可以打电话是一个传递关系,所以Floyd求传递封包,dfs找一个尽量大的圈. #include<bits/stdc++.h> using namespace std; ; map< ...
- UVA - 247 Calling Circles(Floyd求传递闭包)
题目: 思路: 利用Floyd求传递闭包(mp[i][j] = mp[i][j]||(mp[i][k]&&mp[k][j]);),当mp[i][j]=1&&mp[j][ ...
- UVA 247 Calling Circles —— (强连通分量模板题)
第一个强连通分量的题. 题意:有一堆人,a给b打电话表示a有一条向b的边,一个强连通分量代表一个电话圈,把每个电话圈里的人在一行内输出出来. 直接上模板即可,但是要注意把string用map映射一下的 ...
- UVA 247"Calling Circles"(floyd求传递闭包+SCC)
传送门 题意: 如果两个人相互打电话(直接或间接),则说他们在同一个电话圈里. (a,b) 表示 a 打给 b: 例如,(a,b),(b,c),(c,d),(d,a),则这四个人在同一个电话圈里: 输 ...
随机推荐
- Distance matrix
w https://en.wikipedia.org/wiki/Distance_matrix For example, suppose these data are to be analyzed, ...
- <2013 10 18> Linux随机数生成器可能确实存在安全弱点
生成随机数是密码学中的一项基本任务,是生成加密密钥和加密算法或加密协议所必不可少的.理想中的随机数是完美的,但实践中的随机数都是用伪随机数生成器(PRNG)生成,随机数的质量对安全性至关重要.安全专家 ...
- Qt 如何像 VS 一样创建项目模版?
qt 存储模版路径位置:Qt\Qt5.9.5\Tools\QtCreator\share\qtcreator\templates\wizards 在里面随意复制一个模版,修改三项即可在 qt 中显示该 ...
- python函数回顾:getattr()
描述 getattr() 函数用于返回一个对象属性值. 语法 getattr 语法: getattr(object, name[, default]) 参数 object -- 对象. name -- ...
- DOM 查找标签
1.直接查找 document.getElementById // 根据ID获取一个标签 document.getElementsByClassName //根据class属性获取 document. ...
- 字符串之_strncat
功能:将src的前n个字符添加到dest的后面 输入:dest,src,count 返回:ret #include <iostream> #include <assert.h> ...
- from PyQt4.QtGui import * 提示 ImportError: DLL load failed: %1 is not a valid Win32 application.
个人用64位电脑安装了64位的PyQt后 from PyQt4.QtGui import * 提示 ImportError: DLL load failed: %1 is not a valid Wi ...
- GIS学习和开发的在线资源
1.OpenGIS Consortium标准,http://www.opengeospatial.org.著名的OGC标准是每个GIS开发者最后都不得不学习的,或深或浅. 2.SharpMap,Pro ...
- c#中使用NetCDF存储二维数据的读写操作简单应用
[DllImport( [DllImport( [DllImport( ...
- 【转】Linux查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数cat /proc/cpuinfo| g ...