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

HDU 1155 Bungee Jumping 物理

时间:2016-08-14 07:19:47      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

题目大意:给出k:绳子的劲度系数,l:绳长,s:桥高,w:邦德的质量,g取9.81。绳子弹力=形变量*劲度系数。如果落地速度大于10 则摔死,小于0则飘着空中。

题目思路:根据能量守恒得知:落地的动能=重力势能减少量-绳子弹力做功。如果l>s,则绳子不做功。

技术分享
#include<cstdio>
#include<stdio.h>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
#define INF 0x3f3f3f3f
#define MAX 1000005

using namespace std;

int main()
{
    double k,l,s,w,we,g=9.81,v;//we为落地式的动能
    while(scanf("%lf%lf%lf%lf",&k,&l,&s,&w),k+l+s+w)
    {
        if(l > s)//如果绳子大于桥的高度绳子的弹力不会做功,落地时动能增量等于重力势能的减少量
        {
             v=sqrt(2*g*s);
        }
        else//否则,落地时的动能等于重力势能的减少量-绳子弹力做功。绳子的平均弹力=平均形变量*k
        {
            we=w*g*s - ((s-l)/2.0)*(s-l)*k;
            if(we < 0)//若果落地动能小于0,肯定在落地前速度就为0了,也就飘着了半空中
            {
                printf("Stuck in the air.\n");
                continue;
            }
            v=sqrt((we*2)/w);
        }


        if(v > 10)
            printf("Killed by the impact.\n");
        else
            printf("James Bond survives.\n");
    }
    return 0;
}
View Code

 

HDU 1155 Bungee Jumping 物理

标签:

原文地址:http://www.cnblogs.com/alan-W/p/5769122.html

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