UVALive 6835 - Space Golf
来源:互联网 发布:关于网络暴力作文 编辑:程序博客网 时间:2024/05/17 02:43
Time Limit:3000MS Memory Limit:0KB
其实就是暴力所有情况,对每个弹跳次数搜索所有障碍高。
对于弹跳次数b,那么每次抛物线向前移动d/(b+1)次,设为x0。那么对于每个障碍将他们的水平距离 x,x%x0即可将他们都移到过原点的抛物线来计算。因为x0不一定是整数,需要自己写一个去模函数。
设a为障碍水平距离,b为障碍高,则vy2=g*x0^2*b / 2a(x0-a) vx2=g^2*x0^2 / 4vy2
对于弹跳次数b,算出最大的vy2+vx2作为其v2,然后在所有的v2里面找到最小的就是结果。
需要注意的是如果vy2小于vx2,那么出射角小于45度,这种情况下最小的v是在45度时取到的,即vx2=vy2=g*x0 / 2
#include<iostream>#include<cmath>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;#define exp 0.00000001#define inf 1e17struct ob{ double x,h;};double mod(double a,double b){ if (a<b) return a; int t=floor(a/b); return (a-b*t);}int main(){ int n,b,d; double ans; while(cin>>d>>n>>b) { ob p[11]; for(int i=0;i<n;i++) cin>>p[i].x>>p[i].h; double maxx,minn=inf,vx2,vy2; for(int i=0;i<=b;i++) { maxx=0; double x0=(d*1.0)/(i+1.0); bool yep=1; for(int j=0;j<n;j++) { double a=mod(p[j].x,x0),b=p[j].h; if (fabs(a-0)<exp) {yep=0;break;} maxx=max(maxx,x0*x0*b/(2.0*a*(x0-a))); } if (!yep) continue; vy2=maxx; vx2=x0*x0/(4.0*vy2); if (vx2>vy2) vx2=vy2=x0/2.0; minn=min(vy2+vx2,minn); } ans=sqrt(minn); printf("%.5lf\n",ans); }}
0 0
- UVALive 6835 - Space Golf
- UVALive 6835 - Space Golf
- UVALive 6835 Space Golf(物理题)
- UVALive 6835Space Golf-计算几何
- UVALive 6835 - Space Golf(简单解析几何)
- UVALive 6886 Golf Bot
- UVALive 6886 Golf Bot FFT
- Space Golf (二分答案)
- Space Golf(抛物线求速度)
- CFgym 100803D -Space Golf
- UVALive 6886 Golf Bot(FFT)
- UVALive 6886 (LA 6886) Golf Bot FFT
- UVALive 6886 Golf Bot (FFT)
- 【暴力预处理+剪枝/bitset】Golf Bot UVALive
- UVALive 6886 Golf Bot 桶排+剪枝
- Golf
- UVALive 4004 Space Beacon
- 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest D題:Space Golf [二分+三分+基础数学]
- mac安装ubuntu
- 数据结构-字符串
- js引号多层嵌套的问题 加 \
- 关于Eclipse 自动产生appcompat_v7
- Keil MDK 使用malloc()&free(),stm32简单测试可用。
- UVALive 6835 - Space Golf
- Fuse文件系统优化方案
- 转 如何在eclipse中设置查看JDK类库源代码
- UItextView,UIscrollView,UITableViewCell三种能够使页面滑动控件的总结(3)
- 进程的虚拟地址空间
- linux进程共享内存通信示例
- eclipse .vm文件问题
- 图像的近邻、双线性、三次内插法介绍
- android4.0 USB Camera实例(一)JNI层