hdu 5142 物理三分算法
2016-08-08 22:16
183 查看
题意: 在高为h的位置以速度v抛出一物体,求在最优角度抛出的最远水平距离。
解题思路: 刚开始写题时想过直接求公式,但是后来放弃了,你懂得。解法是直接三分抛出去的角(0,π)。求出极大解,但是要注意结束三分的条件刚开始我是小于10−4跳出,但是精度不够,要把条件改为10−7AC。
AC代码:
解题思路: 刚开始写题时想过直接求公式,但是后来放弃了,你懂得。解法是直接三分抛出去的角(0,π)。求出极大解,但是要注意结束三分的条件刚开始我是小于10−4跳出,但是精度不够,要把条件改为10−7AC。
AC代码:
#include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> #include <cstring> #include <map> using namespace std; #define ll long long double h,v; double f(double j) { double vc=v*sin(j); double vp=v*cos(j); double tv=sqrt(2.0*9.8*h+vc*vc); double t=(vc+tv)/9.8; return t*vp; } int main() { double leftt,rightt,mid1,mid2; int T; scanf("%d",&T); while(T--) { 4000 leftt=0; rightt=3.1415926/2.0; scanf("%lf%lf",&h,&v); if(h<=0&&v<=0) { printf("0.00\n"); continue; } while(fabs(leftt - rightt)>0.0000001) ///三分注意跳出条件 { mid1=(leftt+rightt)/2; mid2=(mid1+rightt)/2; if (f(mid1)>=f(mid2)) rightt=mid2; else leftt=mid1; } printf("%.2lf\n",f(leftt)); } return 0; }
相关文章推荐
- HDU 2298 Toxophily 【三分算法 or 直接推导物理公式】
- HDU 4355 (三分算法基础)
- HDU 5144 NPY and shot(物理运动学+三分查找)
- hdu 5144 NPY and shot 物理+三分
- hdu 5144(三分+物理)
- HDU 4355 Party All the Time (三分算法的应用(含三分算法的讲解))
- HDU 5144 NPY and shot 三分(物理)
- 游戏开发中的数学和物理算法(10):矢量 vs 标量
- 游戏开发中的数学和物理算法(14):矩阵的相等和转置
- 游戏开发中的数学和物理算法(11):极坐标 vs 笛卡尔坐标
- hdu 3400 悲剧的三分
- HDU 2298(物理题,纯公式计算)
- 游戏开发中的数学和物理算法(6):圆和球的碰撞检测
- Prim 算法, hdu 1102 Constructing Roads
- 游戏开发中的数学和物理算法(12):矢量的加减法
- 游戏开发中的数学和物理算法(16):矩阵的乘法
- 游戏开发中的数学和物理算法(18):缩放
- 游戏开发中的数学和物理算法(2):定义线
- 游戏开发中的数学和物理算法(4):抛物线
- 游戏开发中的数学和物理算法(8):三角函数