hdu 4445 Crazy Tank(物理过程枚举)
2024-08-24 07:53:35
遇到物理题,千万不要一味的当成物理题去想着推出一个最终结果来,这样ACM竞赛成了物理比赛,出题人就没水平了。。。往往只需要基础的物理分析,然后还是用算法去解决问题。这题n小于等于200,一看就估计是暴力枚举能过。就枚举角度就行了。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
#include<cctype>
#include<sstream>
using namespace std;
#define pii pair<int,int>
#define LL long long int
const int eps=1e-;
const int INF=;
const int maxn=+;
const double pi=acos(-);
const double ds=pi/;
const double g=9.8;
double l1,l2,r1,r2,h,v[];
int ans,n;
int gao(double t)
{
int res=;
for(int i=;i<n;i++)
{
double vx=v[i]*cos(t);
double vy=v[i]*sin(t);
double vt=sqrt(*g*h+vy*vy);
double t=(vt-vy)/g;
double d=vx*t;
if(d>=l2&&d<=r2) return ;
else
{
if(d>=l1&&d<=r1)
{
res++;
}
}
}
return res;
}
int main()
{
//freopen("in8.txt","r",stdin);
while(scanf("%d",&n)==&&n)
{
scanf("%lf%lf%lf%lf%lf",&h,&l1,&r1,&l2,&r2);
for(int i=;i<n;i++)
{
scanf("%lf",&v[i]);
}
ans=;
for(double i=-(pi/);i<=(pi/);i+=ds)
{
ans=max(ans,gao(i));
}
printf("%d\n",ans);
}
return ;
}
最新文章
- php读取excel内容
- 用户行为数据采集核心思维(APP、web数据采集/埋点)
- <;转>;SQL语句执行顺序说明
- express-9 Handlebars模板引擎(2)
- VMware使用中常见问题
- Delphi 根据快捷方式路径取源文件地址
- 前端 HTML基础
- WTL CEdit关联绑定ID,滚动到最新的一行
- 注册Dev的帮助文件
- Ubuntu12.10 下搭建基于KVM-QEMU的虚拟机环境(八)
- oc之封装与类之间的关系
- javascript 获取随机数
- python自动拉取备份压缩包并删除3天前的旧备份
- (二)图数据neo4j基本认识
- C++系列总结——构造与析构
- CSS 重置默认样式
- Go语言之unsafe包介绍及使用
- 设计模式(11)--Flyweight(享元模式)--结构型
- Ctrl+Alt+F1~F6
- C++基础知识 基类指针、虚函数、多态性、纯虚函数、虚析构