2018CCPC吉林赛区(重现赛) The Tower(计算几何)

it2022-05-05  165

链接:http://acm.hdu.edu.cn/showproblem.php?pid=6559 来源:hdu

  题意:给你一个圆锥,然后给你一个点(x,y,z),和运动速度(vx,vy,vz),问能够到达曲面的上所用的最小时间。   思路:

#include<bits/stdc++.h> using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; const int Max_n=1e5+10; int main(){ int T; scanf("%d",&T); for(int cnt=1;cnt<=T;cnt++){ double r,h; scanf("%lf%lf",&r,&h); double x,y,z; scanf("%lf%lf%lf",&x,&y,&z); double vx,vy,vz; scanf("%lf%lf%lf",&vx,&vy,&vz); double c=r*r/(h*h); double k=h-z; double a=vx*vx+vy*vy-c*vz*vz; double b=2*(x*vx+y*vy+c*k*vz); double c1=x*x+y*y-c*k*k; double ans=(-b-sqrt(b*b-4*a*c1))/(2*a); printf("Case %d: %.10lf\n",cnt,ans); } return 0; }

最新回复(0)