hdu 4445 37届金华赛区 D题
2015-04-19 00:32
267 查看
题意:给一个坦克的高度,求炮弹能打中最多的数量
枚举角度,作为一名学霸虽然很快推出了公式,但是却没有考虑到,角度可以朝下的情况
枚举角度,作为一名学霸虽然很快推出了公式,但是却没有考虑到,角度可以朝下的情况
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<map> using namespace std; #define MOD 1000000007 const double PI=acos(-1.0); const double eps=1e-5; const double g=9.8; #define cl(a) memset(a,0,sizeof(a)) #define ts printf("*****\n"); const int MAXN=100006; int cnt[MAXN],a; int n,m,tt; double H,L1,L2,R1,R2; double v[MAXN]; int fun(double an) { int ans=0; for(int i=0;i<n;i++) { double vy=v[i]*sin(an); double vx=v[i]*cos(an); double vyy=sqrt(2*g*H+vy*vy); double t=(vyy-vy)/g; double x=t*vx; if(x>=L2&&x<=R2)return 0; if(L1<=x&&x<=R1) { ans++; } } return ans; } int main() { int j,k; #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); #endif int ca=0; double i; while(scanf("%d",&n)!=EOF) { if(n==0) break; scanf("%lf%lf%lf%lf%lf",&H,&L1,&R1,&L2,&R2); for(int j=0;j<n;j++) scanf("%lf",&v[j]); int sum=0; for(i=-PI/2;i<=PI/2;i+=(PI/1000)) { sum=max(sum,fun(i)); } printf("%d\n",sum); } return 0; }
相关文章推荐
- hdu 4452 37届金华赛区 K题
- HDU 4445 Crazy Tank (2012年金华赛区现场赛D题)
- hdu 4442 37届金华赛区 A题
- hdu 4451 37届金华赛区 J题
- hdu 4442 Physical Examination (2012年金华赛区现场赛A题)
- HDU-4450-Draw Something (2012年金华赛区I题)
- 第37届ACM/ICPC 金华赛区现场赛最水四道题 HDU 4442 Physical Examination HDU 4450 Draw Something HDU 4451 Dressing HDU 4452 Running Rabbits
- HDU 4449 Building Design【金华赛区现场赛H题】
- HDU 4449 Building Design 第37届ACM/ICPC 金华赛区H题 (计算几何,三维凸包+空间坐标旋转+二维凸包)
- hdu 4409 Family Name List 金华赛区1010 (解题报告)
- HDU-4451-Dressing (2012年金华赛区J题)
- hdu 4452 Running Rabbits (模拟—12年金华赛区现场赛K题)
- HDU-4451-Dressing (2012年金华赛区J题)
- HDU 4442 Physical Examination(2012年金华赛区现场赛A题)
- HDU-4442-Physical Examination (2012年金华赛区现场赛A题)
- hdu 4445 Crazy Tank
- hdu 5956 The Elder 2016ACM/ICPC沈阳赛区现场赛I
- HDU 5002 Tree (2014年鞍山赛区网络赛F题)
- HDU 5003 Osu! (2014年鞍山赛区网络赛G题)
- hdu 4821 字符串hash+map判重 String (长春市赛区I题)