hdu 4036

//注意这题的 质量 是 可以不用的

//剩下的直接 用高中物理即可

#include<cmath>
#include<cstdio>
#include<iostream>
using namespace std;
struct node
{
    double x;
    double h;
}a[1010];
double min_v(double h,double v)
{
    return sqrt(2*20.0*h+v*v);
}
int main()
{
    int T;
    scanf("%d",&T);
    int n,p,m[1010],mt;
    for(int k=1;k<=T;k++)
    {
        scanf("%d %d %d",&n,&p,&mt);
        double H=-100000000;
        int i,j;
        for( i=1;i<=n;i++)
        {
            scanf("%lf %lf",&a[i].x,&a[i].h);
            if(H<a[i].h)H=a[i].h;
        }
        double min=sqrt(2*20.0*(H-a[1].h));
        double x,v;
        for(i=1;i<=p;i++)
        {
            scanf("%lf %lf %d",&x,&v,&m[i]);
            int l,r,mid;
            for( j=1;j<=n;j++)
            {
                if(a[j+1].x>x)
                {
                    l=j;
                    r=j+1;
                    break;
                }
            }
            double h=(double)(a[r].h-a[l].h)*(x-a[l].x)/(1.0*(a[r].x-a[l].x))+a[l].h;
            h-=a[1].h;
            double v0=min_v(h,v);
            if(min<v0)min=v0;
        }
        printf("Case %d: %.2lf\n",k,min);
    }
    return 0;
}
posted on 2013-08-21 10:14  看见的是....  阅读(166)  评论(0)    收藏  举报