码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 4036 - Rolling Hongshu

时间:2014-09-20 14:09:07      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   for   sp   问题   on   c   amp   

题目:一个红薯想去见他的女朋友,他要有一个初始速度,才能翻越高山,问罪最小初速度。

分析:物理题,能量守恒 。

            这道题目也是简单题目,按照能量守恒进行求解就没有问题了;

            求出苦土豆到达起点的速度的最大值,并且求出所有山顶到起点的最大速度,取最大即可;

            求解坐标有点麻烦,不过可以直接用比例计算,每次可利用二分优化找到对应的最近的山峰。

说明:(2011-09-19 00:49)。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

typedef struct _point
{
    double x,y,v;
    double HP;
}point;
point Poin[ 1005 ];
point Tudo[ 1005 ];

int search( double X, int H )
{
    int m,l = 1,h = H;
    while ( l < h ) {
        m = (l+h+1)>>1;
        if ( Poin[ m ].x > X )
            h = m-1;
        else l = m;
    }
    return h;
}

int main()
{
    int T,N,M,W;
    scanf("%d",&T);
    for ( int t = 1 ; t <= T ; ++ t ) {
        
        scanf("%d%d%d",&N,&M,&W);
        for ( int i = 1 ; i <= N ; ++ i )
            scanf("%lf%lf",&Poin[ i ].x,&Poin[ i ].y);
        for ( int i = 1 ; i <= M ; ++ i )
            scanf("%lf%lf%d",&Tudo[ i ].x,&Tudo[ i ].v,&W);
            
        for ( int i = 1 ; i <= M ; ++ i ) {
            int s = search( Tudo[ i ].x, N );
            
            if ( Tudo[ i ].x == Poin[ s ].x )
                Tudo[ i ].y = Poin[ s ].y;
            else
                Tudo[ i ].y = Poin[ s ].y + (Poin[ s+1 ].y-Poin[ s ].y)/(Poin[ s+1 ].x-Poin[ s ].x)*(Tudo[ i ].x-Poin[ s ].x);
                
            Tudo[ i ].HP = 40.0*(Tudo[ i ].y-Poin[ 1 ].y) + Tudo[ i ].v*Tudo[ i ].v;
        }
        
        double Max = 0;
        for ( int i = 1 ; i <= M ; ++ i )
            if ( Max < Tudo[ i ].HP ) 
                Max = Tudo[ i ].HP;
                
        for ( int i = 2 ; i <= N ; ++ i ) {
            double HP = 40.0*(Poin[ i ].y-Poin[ 1 ].y);
            if ( Max < HP ) Max = HP;
        }
        
        printf("Case %d: %.2lf\n",t,sqrt(Max));
    }
    return 0;
}

hdu 4036 - Rolling Hongshu

标签:style   io   ar   for   sp   问题   on   c   amp   

原文地址:http://blog.csdn.net/mobius_strip/article/details/39429693

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!