hdu 4036 2011成都赛区网络赛F 模拟 **

为了确保能到达终点,我们需要满足下面两个条件

1.能够到达所有山顶

2.能够在遇到苦土豆时速度大于他

二者的速度可以用能量守恒定律做,苦土豆的坐标可通过三角形相似性来做

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
const int INF=0x3f3f3f3f;
const double eps=1e-5;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=1005;
int n,m,tt;
struct P
{
    double x,h;
}node1[MAXN];
struct PP
{
    double x,v;
}node2[MAXN];
int main()
{
    int i,j,k,w;
    double we,h;
    #ifndef ONLINE_JUDGE
    freopen("1.in","r",stdin);
    #endif
    scanf("%d",&tt);
    int ca=1;
    while(tt--)
    {
        double v0=0,temp;
        int g=20;
        scanf("%d%d%d",&n,&m,&w);
        for(i=1;i<=n;i++)
        {
            scanf("%lf%lf",&node1[i].x,&node1[i].h);
            temp=sqrt(2*g*(node1[i].h-node1[1].h));
            if(temp>v0) v0=temp;
        }
        double vx,v=0;
        for(i=1;i<=m;i++)
        {
            scanf("%lf%lf%lf",&node2[i].x,&node2[i].v,&we);
            node2[i].x+=node1[1].x;
            for(j=1;j<n;j++)
            {
                if(node2[i].x>=node1[j].x&&node2[i].x<=node1[j+1].x)
                {
                    h=(1.0*(node1[j+1].h-node1[j].h)/(node1[j+1].x-node1[j].x))*(node2[i].x-node1[j].x) + node1[j].h;  //bitter potatoe相对于原点的高度
                    break;
                }
            }
            vx=sqrt(1.0*node2[i].v*node2[i].v+1.0*2*g*(h-node1[1].h));
            if(vx>v)
                v=vx;
        }
        if(v>v0)
            printf("Case %d: %.2lf\n",ca++,v);
        else
            printf("Case %d: %.2lf\n",ca++,v0);
    }
}
时间: 2024-10-19 17:14:44

hdu 4036 2011成都赛区网络赛F 模拟 **的相关文章

hdu 4035 2011成都赛区网络赛E 概率dp ****

太吊了,反正我不会 1 /* 2 HDU 4035 3 4 dp求期望的题. 5 题意: 6 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 7 从结点1出发,开始走,在每个结点i都有3种可能: 8 1.被杀死,回到结点1处(概率为ki) 9 2.找到出口,走出迷宫 (概率为ei) 10 3.和该点相连有m条边,随机走一条 11 求:走出迷宫所要走的边数的期望值. 12 13 设 E[i]表示在结点i处,要走出迷宫所要走的边数的期望.E[1]即为所求. 14 15 叶子结点: 16

hdu 4041 2011北京赛区网络赛F 组合数+斯特林数 ***

插板法基础知识 斯特林数见百科 1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<cstring> 5 #define LL long long 6 #define eps 1e-7 7 #define MOD 1000000007 8 using namespace std; 9 int c[2001][2001]={1},stir2[1005][1005]={1};

hdu 4033 2011成都赛区网络赛 余弦定理+二分 **

二分边长,判断最后内角和是否为2pi,注意l与r的选取,保证能组成三角形 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 10000

hdu 4031 2011成都赛区网络赛A题 线段树 ***

就是不知道时间该怎么处理,想了好久,看了别人的题解发现原来是暴力,暴力也很巧妙啊,想不出来的那种  -_-! 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

hdu 4026 2011上海赛区网络赛F TSP ****

没看过TSP,先mark 1 //4838039 2011-10-27 23:04:15 Accepted 4026 2343MS 31044K 3143 B C++ Geners 2 //状态压缩DP的TSP问题 3 //优先级位运算小于判等 , 还有各种细节各种出错 4 #include <cstdio> 5 #include <cstring> 6 #include <stdlib.h> 7 #define mabs(a) (a>0?a:-(a)) 8 9

hdu 4034 2011成都赛区网络赛 逆向floyd **

给出一个最短路邻接矩阵,求出构图的最小边数 正常的floyd的k放在最外面是为了防止i到j的距离被提前确定,而逆向的floyd,i到j的距离已经确定,所以需要在i到j之间枚举k,注意需要break,否则会多删除 Sample Input 3 3 0 1 1 1 0 1 1 1 0 3 0 1 3 4 0 2 7 3 0 3 0 1 4 1 0 2 4 2 0 Sample Output Case 1: 6 Case 2: 4 Case 3: impossible 1 #include<cstdi

hdu 4006 优先队列 2011大连赛区网络赛F **

签到题都要想一会 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 int INF=0x3f3

hdu 4025 2011上海赛区网络赛E 压缩 ***

直接T了,居然可以这么剪枝 题解链接:点我 1 #include<cstdio> 2 #include<map> 3 #include<cstring> 4 #define ll __int64 5 using namespace std; 6 ll a[23],x[23][5],ans; 7 map<ll,ll>p; 8 void dfs(int d,int n,ll res,int f) 9 { 10 if(d==n){ 11 if(f) p[res]+

hdu 4023 2011上海赛区网络赛C 贪心+模拟

以为是贪心,结果不是,2333 贪心最后对自己绝对有利的情况 点我 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 10000000