【HDU 5733】tetrahedron
输入4个点三维坐标,如果是六面体,则输出内切球的球心坐标和半径。
点pi对面的面积为si,点a,b,c组成的面积=|ab叉乘ac|/2。
内心为a,公式:
s0=s1+s2+s3+s4
a.x=∑si*pi.x/s0
a.y=∑si*pi.y/s0
a.z=∑si*pi.z/s0
n为p1、p2、p3的法向量,n=p1p2叉乘p1p3
半径=p1a点乘n/|n|
#include <cstdio>
#include <cmath>
#define dd double
struct point{
dd x,y,z;
int input(){
return scanf("%lf%lf%lf",&x,&y,&z);
}
point operator -(const point &b) const
{
return (point){x-b.x,y-b.y,z-b.z};
}
dd operator *(const point &b)const
{
return x*b.x+y*b.y+z*b.z;
}
point operator ^(const point &b)const
{
return (point){y*b.z-b.y*z,b.x*z-x*b.z,x*b.y-b.x*y};
}
}p[];
dd sqr(dd x){
return x*x;
}
dd area(const point &o,const point &s,const point &e,point &n){
point a=s-o,b=e-o;
n=a^b;
return sqrt(sqr(n.x)+sqr(n.y)+sqr(n.z))/;
}
int main() {
while(~p[].input()){
for(int i=;i<=;i++)
p[i].input();
dd s[];
point n,l=p[]-p[];;
s[]=area(p[],p[],p[],n);
if(l*n==){
puts("O O O O");
continue;
}
s[]=area(p[],p[],p[],n);
s[]=area(p[],p[],p[],n);
s[]=area(p[],p[],p[],n);
dd x=,y=,z=,down=;
for(int i=;i<=;i++){
down+=s[i];
x+=s[i]*p[i].x;
y+=s[i]*p[i].y;
z+=s[i]*p[i].z;
}
point a=(point){x/down,y/down,z/down};
point b=a-p[];
dd r=fabs(b*n)/s[]/;
printf("%.4f %.4f %.4f %.4f\n",a.x,a.y,a.z,r);
}
}
【HDU 5733】tetrahedron的更多相关文章
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】
[把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...
- 【HDU 2196】 Computer(树的直径)
[HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...
- 【HDU 2196】 Computer (树形DP)
[HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...
- 【HDU 5145】 NPY and girls(组合+莫队)
pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...
- 【hdu 1043】Eight
[题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=1043 [题意] 会给你很多组数据; 让你输出这组数据到目标状态的具体步骤; [题解] 从12345 ...
- 【HDU 3068】 最长回文
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=3068 [算法] Manacher算法求最长回文子串 [代码] #include<bits/s ...
- 【HDU 4699】 Editor
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4699 [算法] 维护两个栈,一个栈放光标之前的数,另外一个放光标之后的数 在维护栈的同时求最大前缀 ...
随机推荐
- QuickFix/N简介
QuickFix/N简介 FIX是Financial Information eXchange的简称.FIX是一种专门为实时电子证券交易设计的标准消息协议.该协议由FIX protocol, Ltd ...
- [No000017]单词拼写记不住?试试这俩方法-单词拼写,怎么记又快又好?
- c# HttpClient禁止缓存
using (var client = new HttpClient()) { //方法1: CacheContr ...
- java工程中的.classpathaaaaaaaaaaaaaaaa<转载>
第一部分:classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class. eclipse build path是ec ...
- JAVA常用的XML解析方法
转并总结自(java xml) JAVA常用的解析xml的方法有四种,分别是DOM,JAX,JDOM,DOM4j xml文件 <?xml version="1.0" enco ...
- Resample the mask
我们所用功能像和mask的size不同时,我们首先要对mask进行resample,令其和功能像的size相同才可以. 根据严超赣老师的回复,有三种方法:http://restfmri.net/for ...
- poj3270
Cow Sorting Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6750 Accepted: 2633 Descr ...
- 黑暗圣经---物业公司CTO/CEO改如何给老板推荐物业信息化产品
多年前一次偶然的机会进入到物业信息化行业,在这个过程中认识很多奋战在物业一线的技术大牛.很多时候都会介绍一些朋友给我认识一下,帮我推荐一下我们闻风多奇的物业管理平台.很多朋友看完我们的系统之后都会很开 ...
- TelephonyManager类与PhoneStateListener
public class TelephonyManager extends Object java.lang.Object android.telephony.TelephonyManage ...
- Linux Linux程序练习十四(多进程压力测试)
/* * 题目: * 编程一个基本多进程测试框架,提示用户输入进程数.和每个进程数运行圈数.(fork) * 进行多进程压力测试.(execve) * 要求父进程能监控所有子进程的退出,避免僵尸进程. ...