码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 5144 NPY and shot(三分法)

时间:2014-12-14 10:33:20      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   sp   div   log   bs   

当时做这道题时一直想退出物理公式来,但是后来推到导数那一部分,由于数学不好,没有推出来那个关于Θ的最值,后来直接暴力了,很明显超时了,忘了三分法的应用,这道题又是典型的三分求最值,是个单峰曲线,下面是代码

 1 #include <stdio.h>
 2 #include <math.h>
 3 #define PI 3.1415926
 4 int v, h;
 5 double f(double i)//推倒物理公式 
 6 {
 7     return v*v*1.0*sin(2*i)/9.8+(sqrt(v*v*1.0*sin(i)*sin(i)+2.0*9.8*h)-v*sin(i))/9.8 * v*cos(i);
 8 }
 9 int main()
10 {
11     int T;
12     scanf("%d", &T);
13     while (T--)
14     {
15         scanf("%d %d", &h, &v);
16         double ans = 0.0;
17         double l = 0.0, r = PI/2;
18         double midl, midr;
19         while (r - l >= 1e-6)//三分求最值 
20         {
21             midl=(2*l+r)/3;//是由midl = (r - l) / 3 + l化简得来的 
22             midr=(l+2*r)/3;//是由midr = (r - l) * 2 / 3 + l化简得来的 
23             if(f(midl)>f(midr))//画图像比较好看这个关系 
24                 r=midr;
25             else
26                 l=midl;
27         }
28         printf("%.2lf\n", f((r+l)/2));
29     }
30     
31     return 0;
32 }

 

HDU 5144 NPY and shot(三分法)

标签:style   blog   io   color   os   sp   div   log   bs   

原文地址:http://www.cnblogs.com/Howe-Young/p/4162227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!