hdu 4741 Save Labman No.004
来源:互联网 发布:mac电脑铃声剪辑软件 编辑:程序博客网 时间:2024/06/05 12:50
题目:hdu 4741 Save Labman No.004
思路:异面直线公垂线。 click_here
#include <cstring>#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <vector>using namespace std;double H,I,J,K,L,M,N,O,P,Q;struct point{ double x,y,z;}p[4],q[4];double sq(double tmp){ return tmp*tmp;}vector<double>v;vector<double> solve(point p[]){ v.clear(); H = p[1].x-p[0].x; I = p[1].y-p[0].y; J = p[1].z-p[0].z; K = p[3].x-p[2].x; L = p[3].y-p[2].y; M = p[3].z-p[2].z; N = H*I*L - I*I*K - J*J*K + H*J*M ; O = H*H*L - H*I*K - I*J*M + J*J*L ; P = H*J*K - H*H*M - I*I*M + I*J*L ; Q = -p[0].x*N + p[0].y*O - p[0].z*P ; double k = O*p[2].y - N*p[2].x - P*p[2].z - Q ,x,y,z; k /= (N*K - O*L + P*M); x=K*k+p[2].x; y=L*k+p[2].y; z=M*k+p[2].z; v.push_back(x); v.push_back(y); v.push_back(z); return v;}double dis(vector<double>v1,vector<double>v2){ double tmp=0; for(int i=0;i<v1.size();i++) tmp+=sq(v1[i]-v2[i]); return sqrt(tmp);}int main(){ int t; scanf("%d",&t); while(t--) { for(int i=0;i<4;i++) { scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z); q[3-i].x=p[i].x; q[3-i].y=p[i].y; q[3-i].z=p[i].z; } vector<double>v1=solve(p),v2=solve(q); printf("%.6lf\n",dis(v1,v2)); for(int i=0;i<v2.size();i++) printf("%.6lf ",v2[i]); for(int i=0;i<v1.size()-1;i++) printf("%.6lf ",v1[i]); printf("%.6lf\n",v1[v1.size()-1]); } return 0;}
- hdu 4741 Save Labman No.004
- hdu 4741 Save Labman No.004
- hdu 4741 Save Labman No.004
- HDU 4741 Save Labman No.004
- HDU 4741 Save Labman No.004
- HDU 4741 Save Labman No.004
- [HDU 4741]Save Labman No.004[计算几何][精度]
- hdu 4741 Save Labman No.004(计算几何)
- hdu 4741——Save Labman No.004
- Save Labman No.004
- POJ 4741 Save Labman No.004
- HDU4741 Save Labman No.004
- hdu 4741 Save Labman No.004 [2013年杭州ACM网络赛]
- hdu 4741 Save Labman No.004(2013杭州网络赛)
- HDU 4741 Save Labman No.004 2013 ACM/ICPC 杭州网络赛
- hdu 4741 Save Labman No.004 (求异面直线距离及交点)
- hdu 4741 Save Labman No.004 异面直线最短距离及对应的点
- HDU 4741 Save Labman No.004 (异面直线距离&直线与平面的交点)
- DOS命令
- umdh工具使用
- c#中的函数
- 软件实施--xxxx医院实施总结
- 控制反转思想的理解实例
- hdu 4741 Save Labman No.004
- 关于OC的property 和 实例变量思考
- XBMC插件编写规范
- [Qt] Qt程序发布 [2013-09-16更新]
- Android Expansion 总结
- 树链剖分 模板
- 虚拟网卡及网卡聚合
- android ril 调试分析
- UDT::recv 函数