hdu 4445 37届金华赛区 D题

题意:给一个坦克的高度,求炮弹能打中最多的数量

枚举角度,作为一名学霸虽然很快推出了公式,但是却没有考虑到,角度可以朝下的情况

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<queue>
 7 #include<map>
 8 using namespace std;
 9 #define MOD 1000000007
10 const double PI=acos(-1.0);
11 const double eps=1e-5;
12 const double g=9.8;
13 #define cl(a) memset(a,0,sizeof(a))
14 #define ts printf("*****\n");
15 const int MAXN=100006;
16 int cnt[MAXN],a;
17 int n,m,tt;
18 double H,L1,L2,R1,R2;
19 double v[MAXN];
20 int fun(double an)
21 {
22     int ans=0;
23     for(int i=0;i<n;i++)
24     {
25         double vy=v[i]*sin(an);
26         double vx=v[i]*cos(an);
27         double vyy=sqrt(2*g*H+vy*vy);
28         double t=(vyy-vy)/g;
29         double x=t*vx;
30         if(x>=L2&&x<=R2)return 0;
31         if(L1<=x&&x<=R1)
32         {
33             ans++;
34         }
35     }
36     return ans;
37 }
38 int main()
39 {
40     int j,k;
41     #ifndef ONLINE_JUDGE
42     freopen("1.in","r",stdin);
43     #endif
44     int ca=0;
45     double i;
46     while(scanf("%d",&n)!=EOF)
47     {
48         if(n==0)    break;
49         scanf("%lf%lf%lf%lf%lf",&H,&L1,&R1,&L2,&R2);
50         for(int j=0;j<n;j++)
51           scanf("%lf",&v[j]);
52         int sum=0;
53         for(i=-PI/2;i<=PI/2;i+=(PI/1000))
54         {
55             sum=max(sum,fun(i));
56         }
57         printf("%d\n",sum);
58     }
59     return 0;
60 }
时间: 2024-10-10 17:40:39

hdu 4445 37届金华赛区 D题的相关文章

hdu 4452 37届金华赛区 K题

题意:给一个n*n的格子,1在左上角,2在右下角,每个人有一个初始速度和方向,若遇到边缘,则朝相反方向前进,若两个人相遇则交换方向(注意方向改变后,人仍然需要移动),同时,每个人每过t1,t2时间就会朝左转向,求K秒时那个人所在的方向 模拟,看起来比较麻烦,实际写起来还是比较好写的 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #incl

hdu 4442 37届金华赛区 A题

题意:给出一些队伍,每个队伍有初始等待时间和每秒增加的时间,求最短时间 假设有两个队初始时间和每秒增加时间为a1,b1和a2,b2 若第选择第一个的时间小于第二个,则 a1+a2+a1*b2<a2+a1+a2*b1 化简得a1*b2<a2*b1,注意不要除过去,否则会有除以零报错 卧槽,MOD写错了,wa了半天 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include&l

hdu 4451 37届金华赛区 J题

题意:给出衣服裤子鞋子的数目,有一些衣服和裤子,裤子和鞋子不能搭配,求最终的搭配方案总数 wa点很多,我写wa了很多次,代码能力需要进一步提升 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<map> 8 using

HDU-4451-Dressing (2012年金华赛区J题)

Dressing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2674    Accepted Submission(s): 1179 Problem Description Wangpeng has N clothes, M pants and K shoes so theoretically he can have N×M×K

HDU-4450-Draw Something (2012年金华赛区I题)

Draw Something Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2591    Accepted Submission(s): 2179 Problem Description Wangpeng is good at drawing. Now he wants to say numbers like "521"

HDU - 4813 Hard Code (长春赛区水题)

Description Some strange code is sent to Da Shan High School. It's said to be the prophet's note. The note is extremely hard to understand. However, Professor Meng is so smart that he successfully found the pattern of the code. That is, the length of

HDU - 4814 Golden Radio Base (长春赛区B题)

最小二乘法又叫做最小平方法,是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配. 通常情况下最小二乘法用于求回归问题.以简单的线性最小二乘为例,二维平面上给定个点的坐标,确定一条直线, 要求大致符合这个点的走向. 我们可以设这条直线的方程为,那么就要使在处的函数值与给定的值相 差达到最小,也就是说,要确定的值,使得 最小.根据这种方法求的值就是典型的最小二乘法. 可以看出是的一个二元函数,要求的最小值,那么求偏导,有 进一步得到 然后联立两式可以解出,如果方程数比较多,我们可以用

08年acm区域赛北京赛区 部分题解题报告

08年区域赛北京赛区 http://poj.org/searchproblem?field=source&key=Beijing+2008 POJ 3921 Destroying the bus stations 题目还是比较难的,当时的榜似乎只有4/25的通过/提交,其实题目数据很水.学长转换模型写了网络流求最小割,可以AC,不过自己造了个数据推翻了正确性.我写了个很挫的bfs套bfs,外层是最小的删除点数,内层是求最短路,数据很水可以AC.但比较蛋疼的在于bfs耗内存,而且队列中的点数是阶乘

[hdu5136]Yue Fei&#39;s Battle 2014 亚洲区域赛广州赛区J题(dp)

转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 现场赛的时候由于有个地方有点小问题,没有成功AC,导致与金牌失之交臂. 由于今天下午有点事情,无法打重现,所以下午只是花了十分钟做了一道J题,抢了个FB,2333333333 Yue Fei's Battle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)T