HDU 4445 Crazy Tank
来源:互联网 发布:虚拟恋人软件 编辑:程序博客网 时间:2024/06/04 19:52
题目:click here~
给你N个炮弹的发射速度,以及炮台高度H和L1,R1,L2,R2。
问任选发射角度,最多能有几个炮弹在不打入L2~R2的情况下打入L1~R1
注意:区间有可能重叠。
思路:
物理题,发现单纯的根据V去求X非常困难。
这个时候想到暴力枚举角度,for(double i=0; i<=pi; i+=0.0007)
算出能到达的x,然后判断x,统计sum
发现以增长级0.0007弧度 刚刚好能过这道题
#include <iostream>#include <map>#include <cstdio>#include <cstring>#include <vector>#include <algorithm>#include <cmath>using namespace std;#define Pi acos(-1.0)#define eps 1e-9const double inc = 0.0007;vector<double> v;double H,L1,R1,L2,R2,V;int ans;int N;int temp;//double h,x,x_ans;/*bool dfs(double mid,int i){ if(i == N) { ans = max(temp,ans); return true; } if(mid>Pi/2) { double q = mid - Pi/2; h = (v[i]*sin(q))*(v[i]*sin(q))/2/9.8; x = (v[i]*v[i])*sin(2*q)/2/9.8; x_ans = (v[i]*cos(q))*sqrt(2*(h+H)/9.8) + x; if(x_ans<=R2&&x_ans>=L2) { return false; } if(x_ans<=R1&&x_ans>=L1) { temp++; } } else { double t = ((-2*v[i]*cos(mid))+sqrt((-2*v[i]*cos(Pi))*(-2*v[i]*cos(Pi))-4*9.8*(-2*H)))/2.0/9.8; if(t<0) t = ((-2*v[i]*cos(mid))-sqrt((-2*v[i]*cos(Pi))*(-2*v[i]*cos(Pi))-4*9.8*(-2*H)))/2.0/9.8; x_ans = v[i]*sin(mid)*t; if(x_ans<=R2&&x_ans>=L2) { return false; } if(x_ans<=R1&&x_ans>=L1) { temp++; } } return dfs(mid,i+1);}*/int main(){ while(scanf("%d",&N)&&N) { v.clear(); ans = 0; scanf("%lf %lf %lf %lf %lf",&H,&L1,&R1,&L2,&R2); for(int i=0; i<N; i++) { scanf("%lf",&V); v.push_back(V); } //double int f; for(double i=0; i<Pi; i+=inc) { temp = 0; f= 1; for(int j=0; j<N; j++) { double vx,vy; double a,b,c; double x,t; vx=sin(i)*v[j]; vy=cos(i)*v[j]; a=4.9; b=vy; c=-H; t=(-b+sqrt(b*b-4*a*c))/(2*a); x=vx*t; if(x>=L2 && x<=R2) { f=0; break; } if(x>=L1 && x<=R1) temp++; } if(f) ans = max(ans,temp); } /*l = 0, r = Pi; while(r-l>eps) { temp = 0; mid = (l+r)/2; midd = (r+mid)/2; if(dfs(midd,0)) l = midd; else r =midd; } */ printf("%d\n",ans); } return 0;}
0 0
- hdu 4445 Crazy Tank
- hdu 4445 Crazy Tank
- HDU 4445 Crazy Tank
- hdu 4445 Crazy Tank
- HDU-4445 Crazy Tank
- HDU 4445 Crazy Tank
- HDU 4445 Crazy Tank
- HDU-4445(CRAZY TANK枚举)
- hdu 4445 Crazy Tank题解
- HDU 4445 Crazy Tank --枚举
- HDU 4445 Crazy Tank 三分+枚举+二分
- HDU 4445 Crazy Tank(枚举角度)
- hdu 4445 Crazy Tank(枚举角度)
- hdu 4445 Crazy Tank (暴力枚举)
- [物理题+枚举] hdu 4445 Crazy Tank
- hdu 4445 Crazy Tank(枚举)
- HDU 4445 - Crazy Tank(暴力枚举)
- HDU 4445 Crazy Tank 枚举角度
- Android源码工程根目录文件
- HDU 5533 Dancing Stars on Me(数学+水题)
- 【NOIP2016提高A组五校联考1】道路规划
- git客户端保存用户名密码
- hdu3530Subsequence【单调队列优化dp】2010多校联合
- HDU 4445 Crazy Tank
- Hadoop Shell命令
- nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》
- Coderforces 7D hash+dp
- PART2
- STM32:DMA方式接收SPI总线数据,并按照协议进行处理
- UVA - 839 Not so Mobile
- 数据结构--图(js版)
- Hadoop学习笔记(9)-搭建Hbase伪分布式及简单操作