首页 > 其他 > 详细

CF C. Fly

时间:2018-07-31 16:05:46      阅读:110      评论:0      收藏:0      [点我收藏+]

题目

题目大意:第一行给出一个数n,代表有n个点,第二行给出火箭的自重,第三行给出每个点去时每吨需要的燃料,第四行给出每个点返程时每吨需要的燃料。求出发时携带的最小燃料数

分析:这题我们只要逆向思维就很好的可以解决答案了,我们知道要携带的燃料是最少的话,那就是到达火星回来地球的时候,燃料一定为零,那我们就从最后一站开始计算 ,根据计算公式 消耗的燃料x=(x+s)/a[i] , 当前的火箭重量为 x=s/*(a[i]-1),s+=x;

若ai或者bi若等于1,消耗与载重1:1:(飞到了就耗完燃料)

技术分享图片
#include<stdio.h>
int a[1001],b[1001];
int main( )
{
    int n,fa=0;
    double s,sum=0,x;
    scanf("%d%lf",&n,&s);
    for(int i=0 ; i<n ; i++)
    {
        scanf("%d",&a[i]);
        if(a[i]<=1)
        fa=1;
    }
    for(int i=0 ; i<n ; i++)
    {
        scanf("%d",&b[i]);
        if(b[i]<=1)
        fa=1;
    }
    if(fa==1)
    {
        printf("-1\n");
        return 0;
    }

    for(int i=n-1 ; i>=0 ; i--)
    {
        x=s/(a[i]-1),s+=x,sum+=x;
        x=s/(b[i]-1),s+=x,sum+=x;
    }
     printf("%.10f\n",sum);
}
View Code

 

CF C. Fly

原文:https://www.cnblogs.com/shuaihui520/p/9396300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!