UVA 12901 Refraction 几何/大雾题
2024-08-24 07:41:53
Refraction
Time Limit: 20 Sec
Memory Limit: 256 MB
题目连接
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83008#problem/E
Description
HINT
题意
上面有一个眼镜,要看水池里的东西,考虑折射,问你水面最少得多高?
题解:
解方程,普通的大雾题,解解方程就好了
代码
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define test freopen("test.txt","r",stdin)
#define maxn 2000001
#define mod 1000000007
#define eps 1e-9
const int inf=0x3f3f3f3f;
const ll infll = 0x3f3f3f3f3f3f3f3fLL;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
//************************************************************************************** double w,h,x,xe,ye,p; int main()
{
int t=read();
while(t--)
{
cin>>w>>h>>x>>xe>>ye>>p;
double tan1=(xe-w)/(ye-h);
double tan2=tan(asin(sin(atan(tan1))/p)); double x1=w-tan1*h;
double ans=(x-x1)/(tan1-tan2);
if(ans<=)
cout<<"0.0000"<<endl;
else if(ans>h)
cout<<"Impossible"<<endl;
else
printf("%.4f\n",ans);
}
}
最新文章
- node基本理念(事件、多线程、进程)
- Android 采用post方式提交数据到服务器
- TCP拆包粘包之分隔符解码器
- 数组第K小数问题 及其对于 快排和堆排 的相关优化比较
- Passwordless SSH Login
- 详解C#委托,事件与回调函数
- libsvm使用方法总结
- linux SPI bus demo hacking
- Linux Shell编程(26)——代码块重定向
- 两个栈实现队列+两个队列实现栈----java
- JavaBean--JavaBean与表单
- REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR获取客户端IP
- Choose the best route(最短路)dijk
- PL/SQL 一个数据对象一个事务(rollback,submit)
- mongodb聚合的使用
- vscode快捷键
- promise 链式
- python - 字符编码/格式化/替换符
- hive 限制本地内存使用量
- ubuntu下修改mysql默认data路径