hdu 1411 개교 기념일 신비 건축 (계산 기하학)

개교 기념일 신비 건축물
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1370    Accepted Submission(s): 428
Problem Description
항 저 우 전자 과 기대 학 교 는 50 주년 을 맞이 하 는 개교 기념일 을 앞 두 고 있 습 니 다. 개교 기념일 위원회 의 구성원 인 저 는 상사 로부터 신비 로 운 건축물 을 설계 하여 개교 기념일 에 맞 추 라 는 요 구 를 받 았 습 니 다. 그래서 저 는 한 달 동안 고심 끝 에 방안 을 설 계 했 습 니 다. 이 건축물 은 약간 오래된 피라미드 와 같 지만 이 신비 한 건축 의 기 초 는 사각형 이 아 닌 삼각형 입 니 다.수학의 전문 적 인 측면 에서 볼 때 그것 은 사면 체 이다.내 가 나의 설계 도면 을 제출 하려 고 했 을 때, 나 는 이 신비 한 건축물 의 부 피 를 어떻게 계산 해 야 할 지 몰 랐 다. 그래서 나 는 똑똑 한 너 를 찾 아 이 어 려 운 문 제 를 해결 하 는 데 도움 을 주 었 다.
 
Input
입력 파일 은 1000 을 넘 지 않 는 6 개의 실 수 를 포함 하고 있 으 며, 각 수 사 이 를 빈 칸 으로 구분 합 니 다.피라미드 ABCD 의 모서리 길 이 를 나타 내 는 각 수 는 AB, AC, AD, BC, BD, CD 입 니 다.
 
Output
출력 데 이 터 는 피라미드 의 부 피 를 나타 내 고 4 자리 소수 까지 정확 해 야 한다.
 
Sample Input
 
   
2 2 2 2 2 2
 

Sample Output
 
   
0.9428
 

Author
Eddy
 

Source
HDU 2006-5 Programming Contest
 

Recommend
lxj
 

题解:欧拉体积公式求四面体体积


#include
#include
double p,q,r,n,m,l,res;
double a,b,c,d,e,f;
double v[3][3];
void init()
{
    v[0][0]=p*p;
    v[0][1]=(p*p+q*q-n*n)/2;
    v[0][2]=(p*p+r*r-m*m)/2;
    v[1][0]=(p*p+q*q-n*n)/2;
    v[1][1]=q*q;
    v[1][2]=(q*q+r*r-l*l)/2;
    v[2][0]=(p*p+r*r-m*m)/2;
    v[2][1]=(q*q+r*r-l*l)/2;
    v[2][2]=r*r;
}
void cal()
{
    a=v[0][0]*v[1][1]*v[2][2];
    b=v[0][1]*v[1][2]*v[2][0];
    c=v[0][2]*v[1][0]*v[2][1];
    d=v[0][2]*v[1][1]*v[2][0];
    e=v[0][1]*v[1][0]*v[2][2];
    f=v[0][0]*v[1][2]*v[2][1];
    res=(a+b+c-d-e-f);
}
int main()
{
    while(scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&n,&m,&l)>0)
    {
        init();
        cal();
        printf("%.4lf
",sqrt(res/36)); } return 0; }

좋은 웹페이지 즐겨찾기