【HDU 4445】Crazy Tank(暴力)
高中物理斜抛运动,简单分析一下角度固定下来则可以计算每个cannonball的降落坐标lnd。
因此暴力计算不同角度下的结果。
#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); } }
┆凉┆暖┆降┆等┆幸┆我┆我┆里┆将┆ ┆可┆有┆谦┆戮┆那┆ ┆大┆始┆ ┆然┆
┆薄┆一┆临┆你┆的┆还┆没┆ ┆来┆ ┆是┆来┆逊┆没┆些┆ ┆雁┆终┆ ┆而┆
┆ ┆暖┆ ┆如┆地┆站┆有┆ ┆也┆ ┆我┆ ┆的┆有┆精┆ ┆也┆没┆ ┆你┆
┆ ┆这┆ ┆试┆方┆在┆逃┆ ┆会┆ ┆在┆ ┆清┆来┆准┆ ┆没┆有┆ ┆没┆
┆ ┆生┆ ┆探┆ ┆最┆避┆ ┆在┆ ┆这┆ ┆晨┆ ┆的┆ ┆有┆来┆ ┆有┆
┆ ┆之┆ ┆般┆ ┆不┆ ┆ ┆这┆ ┆里┆ ┆没┆ ┆杀┆ ┆来┆ ┆ ┆来┆