UVALive 6835 - Space Golf
来源:互联网 发布:淘宝能在1688 编辑:程序博客网 时间:2024/05/17 08:05
UVALive 6835 - Space Golf
Time Limit:3000MS Memory Limit:0KB
题目地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4847
其实就是暴力所有情况,对每个弹跳次数搜索所有障碍高。
对于弹跳次数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 [二分+三分+基础数学]
- Discriminative Learned Dictionaries for Local Image Analysis学习笔记
- Android使用SimpleAdapter
- 总结CSS3变形transform属性
- AFNetworking《二》理解NSOperation (Demo笔记)
- Excel Sheet Column Number
- UVALive 6835 - Space Golf
- 10min programming
- openjudge集合问题
- Sublime Text 全程指南
- 第一个Android用例
- [Javascript Data Structures] 二分查找 Binary Search
- HTML5 Cookie总结
- 黑马程序员——java基础---集合--迭代
- Web Services 指南之:Web Services 的组件