hdu 4445 暴力枚举

轨迹模拟与优化
本文介绍了一个使用C语言实现的轨迹模拟程序,该程序通过输入不同的参数来计算物体飞行轨迹,并优化飞行物通过特定区域的数量。涉及到数学计算、循环迭代及条件判断等关键步骤。
#include<stdio.h>
#include<math.h>
#define g 9.8
#define N 250
double v[N];
int main()
{
  int n,i,ans,sum;
  double h,l1,r1,l2,r2,t,vx,vy,x,p;
  while(scanf("%d",&n),n!=0)
  {
     scanf("%lf%lf%lf%lf%lf",&h,&l1,&r1,&l2,&r2);
     for(i=1;i<=n;i++)
      scanf("%lf",&v[i]);
      ans=0;  double pi=acos(-1.0);
      for(p=0;p<=pi;p+=(pi/300))//注意精度,比较坑,试出来的
      {
         sum=0;
         for(i=1;i<=n;i++)
         {
            vx=v[i]*sin(p);
            vy=v[i]*cos(p);
            t=(sqrt(2*g*h+vy*vy)+vy)/g;
            x=vx*t;
            if(l2<=x&&x<=r2)
            {
                sum=0;
                break;
            }
            else if(l1<=x&&x<=r1)
               sum++;
         }
         if(sum>ans)
           ans=sum;
      }
      printf("%d\n",ans);
  }
  return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值