前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【HDU 4445】Crazy Tank(暴力)

【HDU 4445】Crazy Tank(暴力)

作者头像
饶文津
发布2020-06-02 15:45:11
2650
发布2020-06-02 15:45:11
举报
文章被收录于专栏:饶文津的专栏饶文津的专栏

高中物理斜抛运动,简单分析一下角度固定下来则可以计算每个cannonball的降落坐标lnd。

因此暴力计算不同角度下的结果。

代码语言:javascript
复制
#include <cstdio>
#include "cmath"
#include "algorithm"
#define ll long long
#define dd double
#define N 205
#define g 9.8
#define eps 1e-6
const dd pi=acos(-1.0);
ll h,l1,l2,r1,r2,n;
dd v[N];
using namespace std;
int main(){
    while(scanf("%d",&n),n){
        scanf("%d%d%d%d%d",&h,&l1,&r1,&l2,&r2);
        for(int i=1;i<=n;i++)
            scanf("%lf",&v[i]);
        int lans=0;
        for(dd d=0;d<1;d+=1./360){
            int ans=0,ok=1;
            dd s=sin(d*pi);
            dd c=cos(d*pi);
            for(int i=1;i<=n;i++){
                dd vx=v[i]*s;
                dd vy=v[i]*c;
                dd t=(sqrt(2*h*g+vy*vy)-vy)/g;
                dd lnd=vx*t;
                if(lnd>=l2&&r2>=lnd){ok=0;break;}
                if(lnd>=l1&&r1>=lnd)ans++;
            }
            if(ok)lans=max(ans,lans);    
        }
        printf("%d\n",lans);
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档