首页 > 其他分享 >是否加满油

是否加满油

时间:2022-08-23 18:55:23浏览次数:32  
标签:加满 const int 是否 Stop double include avg

https://www.acwing.com/problem/content/1519/

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 510;

int c_max, d, d_avg, n;
struct Stop
{
    double p, d;

    bool operator< (const Stop& t) const
    {
        return d < t.d;
    }
}s[N];

int main()
{
    cin >> c_max >> d >> d_avg >> n;
    for (int i = 0; i < n; i ++ ) cin >> s[i].p >> s[i].d;
    s[n] = {0, (double)d};

    sort(s, s + n + 1);

    if (s[0].d)
    {
        puts("The maximum travel distance = 0.00");
        return 0;
    }

    double res = 0, oil = 0;
    for (int i = 0; i < n;)
    {
        int k = -1;
        for (int j = i + 1; j <= n && s[j].d - s[i].d <= c_max * d_avg; j ++ )
            if (s[j].p < s[i].p)
            {
                k = j;
                break;
            }
            else if (k == -1 || s[j].p < s[k].p)
                k = j;

        if (k == -1)
        {
            printf("The maximum travel distance = %.2lf\n", s[i].d + (double)c_max * d_avg);
            return 0;
        }

        if (s[k].p <= s[i].p)
        {
            res += ((s[k].d - s[i].d) / d_avg - oil) * s[i].p;
            i = k;
            oil = 0;
        }
        else
        {
            res += (c_max - oil) * s[i].p;
            oil = c_max - (s[k].d - s[i].d) / d_avg;
            i = k;
        }
    }

    printf("%.2lf\n", res);

    return 0;
}

标签:加满,const,int,是否,Stop,double,include,avg
From: https://www.cnblogs.com/xjtfate/p/16617416.html

相关文章

  • js判断数组中是否有重复的数据
     一、普通数据constarr=['111','222','333','444','555'];//判断数组元素是否有重复getisRepeat:function(arr){varhash={};......
  • 客服系统都有什么作用?客服软件的这些强大功能你是否了解?
    客服系统都有什么作用呢?其实很多企业可能对于客服软件的功能并不是特别了解,觉得它只是一种智能应答的软件而已,但其实它的功能是非常非常丰富的,今天就给大家简单说一下关于......
  • php判断多维数组中是否含有某个值
    在php开发中,我们有时候需要检查PHP多维数组中是否存在某一值Value。在本教程中,我们将演示并描述了如何检查多维数组中是否存在某一值的几种方法。我们将使用以下2种方法来......
  • PHP判断远程文件是否存在的四种方法
    PHPfile_exists()函数用于检查服务器上是否存在一个文件或目录。但是,如果要检查远程服务器上的文件是否存在,file_exists()函数将不可用。本文将介绍php中如何判断远程文......
  • Linux检查IP是否通
    telnetIP+空格+端口例子:telnet192.168.1.1006666  显示如上图1,则说明IP是通的。  显示如上图2,则说明IP是不同的。 ......
  • Vue面试题06:Vue子组件是否可以修改父组件的数据?
    Vue子组件是否可以修改父组件的数据?可以修改但不推荐:首先,文档中指出组件开发需要遵循单向数据流原则:即所有的props都遵循着单向绑定的原则,props因父组件的更新而变化......
  • 1455. 检查单词是否为句中其他单词的前缀
    1455.检查单词是否为句中其他单词的前缀给你一个字符串sentence作为句子并指定检索词为searchWord,其中句子由若干用单个空格分隔的单词组成。请你检查检索词se......
  • 案例_校验用户名是否存在
    案例_校验用户名是否存在服务器响应的数据在客户端使用时要想当做json数据格式使用$.get(type):将最后一个参数typer指定为“json”在服务器端设置MIME类型response......
  • 校验用户名是否存在案例
    案例校验用户名是否存在服务器响应的数据,在客户端使用时,要想当作json数据格式使用$.get(type):将最后一个参数tupe指定为"json"在服务器端设施MIME类型response.se......
  • json转java对象以及校验用户名是否存在案例
    json转java对象使用步骤:1、导入jackson的相关jar包2、创建Jackson核心对象ObjectMapper3、调用ObjectMapper的相关方法进行转换1、readValue(js......