题目链接:http://7xjob4.com1.z0.glb.clouddn.com/b4d60dcf5f1da9372280ae83202180b7
分析:数学计算题,考查了物理上的折射问题。题意:右上角有一双眼睛,缸里有一个东西,问能看见这个东西时,缸里的水的高度最小是多少?
水的高度越高,看的范围越广。视线肯定从右上角的缸的边缘下来。(推导细节过程忘记了)
CODE:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
double W,H,x,xe,ye;
double u,h;
cin>>W>>H>>x>>xe>>ye>>u;
double X=xe-W,Y=ye-H;
double a=xe-x-ye*(X/Y),b=u*u*(1+(Y*Y)/(X*X))-1;
h=a/(1/sqrt(b)-X/Y);
if(h>H)
cout<<"Impossible"<<endl;
else
cout<<setprecision(4)<<fixed<<h<<endl;
}
return 0;
}