题意:给你三角形的三条边,求图中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 (外切圆)的更多相关文章

  1. UVa 247 - Calling Circles(Floyd求有向图的传递闭包)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  2. UVa 247 Calling Circles【传递闭包】

    题意:给出n个人的m次电话,问最后构成多少个环,找出所有的环 自己想的是:用map来储存人名,每个人名映射成一个数字编号,再用并查集,求出有多少块连通块,输出 可是map不熟,写不出来,而且用并查集输 ...

  3. UVA - 247 Calling Circles Floyd判圈

    思路:利用的Floyd判圈,如果i能到j,j也能到i说明i和j在同一个圈里.每个人的名字可用map编号.最后DFS打印答案即可. AC代码 #include <cstdio> #inclu ...

  4. UVa 247 Calling Circles (DFS+Floyd)

    题意:如果两个人互通电话,那么他们就在一个电话圈里,现在给定 n 个人,并且给定 m 个通话记录,让你输出所有的电话圈. 析:刚开始没想到是Floyd算法,后来才知道是这个算法,利用这个算法进行连通性 ...

  5. UVA LIVE-4642 - Malfatti Circles

    给出三角形三个顶点,求出三个互切的圆的半径 尽管大白鼠说能够推出公式,但是这个公式仅仅怕没那么easy推--我左看右看上看下看也推不出. 应该是要做辅助线什么的,那也-- 因为非常easy就推出了关于 ...

  6. UVA 247 - Calling Circles (Floyd)

    互相可以打电话是一个传递关系,所以Floyd求传递封包,dfs找一个尽量大的圈. #include<bits/stdc++.h> using namespace std; ; map< ...

  7. UVA - 247 Calling Circles(Floyd求传递闭包)

    题目: 思路: 利用Floyd求传递闭包(mp[i][j] = mp[i][j]||(mp[i][k]&&mp[k][j]);),当mp[i][j]=1&&mp[j][ ...

  8. UVA 247 Calling Circles —— (强连通分量模板题)

    第一个强连通分量的题. 题意:有一堆人,a给b打电话表示a有一条向b的边,一个强连通分量代表一个电话圈,把每个电话圈里的人在一行内输出出来. 直接上模板即可,但是要注意把string用map映射一下的 ...

  9. UVA 247"Calling Circles"(floyd求传递闭包+SCC)

    传送门 题意: 如果两个人相互打电话(直接或间接),则说他们在同一个电话圈里. (a,b) 表示 a 打给 b: 例如,(a,b),(b,c),(c,d),(d,a),则这四个人在同一个电话圈里: 输 ...

随机推荐

  1. .NET架构师必备知识

    .NET架构师,我归纳一下要学的知识: 成为优秀程序员,需要学好的知识: 1. 面向对象编程.UML画图.设计模式.代码重构 2. 常用ORM工具 3.  MVC,WCF,XMl, JQuery ,S ...

  2. 记录-Hibernate+servlet实现简单的增、删、查、改

    由于需要对Hibernate作个了解,所以写了个简单的实现 以上是大概目录 1.新建Hibernate.cfg.xml配置文件 <?xml version='1.0' encoding='UTF ...

  3. 创建String字符串的方式与区别

    Java中创建一个字符串的方式有很多种,常见如: String s = new String("riqi"); String s = "riqi"; 但两者有什 ...

  4. mesos cluster

    http://spark.apache.org/docs/latest/running-on-mesos.html http://stackoverflow.com/questions/1993985 ...

  5. make编译三

    多目标 Makefile 的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似.于是我们就能把其合并起来.但是如果多个目标的生成规则的执行命令是同 ...

  6. windows server2003/2008中权限账户

    在windows server 2003与windows server 2008 R2中,查看文件夹权限时,尤其是用cacls命令查看时,经常会见nt authority system这样的用户信息. ...

  7. Oracle 11g Enhancements in AWR Baselines

    Enhancements in AWR Baselines A baseline is any set of snapshots taken over a period of time. The sn ...

  8. shell方式切割tomcat日志

    #!/bin/bash while true do cd /usr/local/tomcat/logs d=`date +%Y%m%d` d15=`date -d'15 day ago' +%Y%m% ...

  9. Nginx配置参数说明

    一.主配置段1.正常运行必备的配置#运行用户和组,组身份可以省略user nginx nginx; #指定nginx守护进程的pid文件pid path/to/nginx.pid; #指定所有work ...

  10. iOS 什么是函数式编程

    前言:当前只做理解性的常规背书,根据不断深入学习会不断丰富解读内容,欢迎评论提意见 函数式编程:Functional Programming 1 基本解释: 函数式编程 是一种思维模式,一种编程思想, ...