zoukankan      html  css  js  c++  java
  • HDU 4445 Crazy Tank 高中物理知识忘得差不多了

    题意不难理解,仔细看题吧,就不说题意了

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    using namespace std;
    
    const double PI=acos(-1.0);
    const double g=9.8;
    
    double V[205];
    
    int main()
    {
        //freopen("in.txt","r",stdin);
        int n;
        while(scanf("%d",&n),n)
        {
            double H,L1,R1,L2,R2;
            memset(V,0,sizeof(V));
            scanf("%lf%lf%lf%lf%lf",&H,&L1,&R1,&L2,&R2);
            for(int i=0; i<n; i++)
                scanf("%lf",&V[i]);
            if(L2<=L1 && R2>=R1)
                printf("0
    ");
            else
            {
                int ans=0;
                double add=PI/1000; //一开始我是另add=0.001,虽然比PI/1000还小,然而无限wa。可能是样例所要求弧度是PI平均分割的,0.001精读比PI/1000小,例如(没验证),0.003不能打到敌方,而0.00314159....可以,但是0.004也不能打到敌方。
                for(double i=-PI/2; i<PI/2; i+=add)
                {
                    int cou=0;
                    for(int j=0;j<n;j++)
                    {
                        double Vx0=V[j]*cos(i);
                        double Vy0=V[j]*sin(i);
                        double Vy=sqrt(2*g*H+Vy0*Vy0);
                        double t=(Vy-Vy0)/g;
                        double x=Vx0*t;
                        if(x>=L2 && x<=R2)
                        {
                            cou=0;
                            break;
                        }
                        if(x>=L1 && x<=R1)
                            cou++;
                    }
                    ans=ans>cou? ans:cou;
                }
                printf("%d
    ",ans);
            }
        }
        return 0;
    }
  • 相关阅读:
    入门OJ 4187【周末舞会】
    入门OJ 1532【排队取款】
    洛谷 P3029 [USACO11NOV]【牛的阵容Cow Lineup】
    洛谷 P1638【逛画展】
    入门OJ 1256【排队】
    PKU 1945【Power Hungry Cows】
    RocketMQ重试机制和消息
    Java操作RocketMQ
    RocketMQ概述
    重定向机制
  • 原文地址:https://www.cnblogs.com/pach/p/5782949.html
Copyright © 2011-2022 走看看