zoukankan      html  css  js  c++  java
  • CF C. Fly

    题目

    题目大意:第一行给出一个数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
    ");
            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
    ",sum);
    }
    View Code
  • 相关阅读:
    typora 页内跳转
    shell脚本搭建redis集群
    Html
    python json模块
    jenkins 问题合集
    day05 每日一行
    day04 每次一行
    day03 每日一行
    day02
    day02 每日一行
  • 原文地址:https://www.cnblogs.com/shuaihui520/p/9396300.html
Copyright © 2011-2022 走看看