当前位置: 首页 > news >正文

临沂中小企业网站制作网页制作教程哔哩

临沂中小企业网站制作,网页制作教程哔哩,网站开发合作协议书,网络销售公司经营范围如今许多普通百姓家有了私家车,一些人喜爱自己驾车从一个城市到另一个城市旅游。自己驾车旅游时总会碰到加油和吃饭的问题,在出发之前,驾车人总要想方设法得到从一个城市到另一个城市路线上的加油站的列表,列表中包括了所有加油站…

如今许多普通百姓家有了私家车,一些人喜爱自己驾车从一个城市到另一个城市旅游。自己驾车旅游时总会碰到加油和吃饭的问题,在出发之前,驾车人总要想方设法得到从一个城市到另一个城市路线上的加油站的列表,列表中包括了所有加油站的位置及其每升的油价(如 3.25 元/L)。驾车者一般都有以下的习惯:

  1. 除非汽车无法用油箱里的汽油达到下一个加油站或目的地,在油箱里还有不少于最大容量一半的汽油时,驾驶员从不在加油站停下来;
  2. 在每一个停下的加油站总是将油箱加满;
  3. 在加油站加油的同时,买快餐等吃的东西花去 20 元。
  4. 从起始城市出发时油箱总是满的。
  5. 加油站付钱总是精确到 0.1 元(四舍五入)。
  6. 驾车者都知道自己的汽车每升汽油能够行驶的里程数。

现在要你帮忙做的就是编写一个程序,计算出驾车从一个城市到另一个城市的旅游在加油和吃饭方面最少的费用。

输入格式

第一行是一个实数,是从出发地到目的地的距离(单位:km)。

第二行是三个实数和一个整数,其中第一个实数是汽车油箱的最大容量(单位:L);第二个实数是汽车每升油能行驶的公里数;第三个实数是汽车在出发地加满油箱时的费用(单位:元);一个整数是 1 到 50 间的数,表示从出发地到目的地线路上加油站的数目。

接下来 n 行都是两个实数,第一个数表示从出发地到某一个加油站的距离(单位:km);第二个实数表示该加油站汽油的价格(单位:元)。

数据项中的每个数据都是正确的,不需判错。一条线路上的加油站根据其到出发地的距离递增排列并且都不会大于从出发地到目的地的距离。

输出格式

输出一个实数,即精确到 0.1 元的最小的加油和吃饭费用。

输入输出样例

输入 #1复制

600
40  8.5  128  3
200  3.52
350  3.45
500  365

输出 #1复制

13133.2

//我以为自己能写开这道题的,实际上写的时候也被难住了,难在了哪呢?dfs函数实现上,我没找到在同一深度时有什么不同选择项,感觉是个线性题,实则不然,只是我没从题目中提取出来罢了,看条件一,有种情况,油不够到下一个加油站那必定加油,否则再细分,若油超过1/2,就选择不加,到现在为止是否感觉还是线性的?但如果油不够1/2时便会出现两个选择项了,停下来加油或者不停,想到这层就好写了

//奉上代码

#include <bits/stdc++.h>

using namespace std;

struct stn

{

    double loc;

    double prc;

};

stn gas[64];

int dis, n;

double vol, per, cst, ans;

bool flg = true;

void dfs(double ful, int loc, double sum){

    if(loc == n + 1){

        if(flg){

            ans = sum;

            flg = false;

        }

        else if(sum < ans){

            ans = sum;

        }

        return;

    }

    if((gas[loc + 1].loc - gas[loc].loc) / per > ful){

        sum += 20;

        sum += gas[loc].prc * (vol - ful);

        ful = vol;

        ful -= (gas[loc + 1].loc - gas[loc].loc) / per;

        dfs(ful, loc + 1, sum);

    }

    else if(ful < vol / 2){

        dfs(ful - (gas[loc + 1].loc - gas[loc].loc) / per, loc + 1, sum);

        sum += 20;

        sum += gas[loc].prc * (vol - ful);

        ful = vol;

        ful -= (gas[loc + 1].loc - gas[loc].loc) / per;

        dfs(ful, loc + 1, sum);

    }

    else{

        ful -= (gas[loc + 1].loc - gas[loc].loc) / per;

        dfs(ful, loc + 1, sum);

    }

}

int main(int argc, char const *argv[])

{

    scanf("%d", &dis);

    scanf("%lf %lf %lf %d", &vol, &per, &cst, &n);

    for(int i = 1; i <= n; i ++)

        scanf("%lf %lf", &gas[i].loc, &gas[i].prc);

    gas[n + 1].loc = dis;

    gas[0].loc = 0;

    dfs(vol, 0, 0);

    printf("%.1lf", ans + cst);

    return 0;

}

http://www.dtcms.com/a/575575.html

相关文章:

  • 主域名进入网站网络工具下载
  • 怎样找公司做单的网站郑大二附院网站建设招标
  • 平台网站开发五大电商平台都有哪些
  • 推广网站2024WordPress电脑与手机
  • 深圳市龙岗区住房和建设局官网网站建设中专网站首页
  • 深圳企业营销型网站营销型网站的公司
  • 网站建设课程设计实验报告润东电子科技 网站建设
  • 织梦网站后台登陆业之峰家装公司地址
  • 网站怎么能被百度收录代理网站备案收钱
  • 打开网站无反应怎么做社交网站盈利吗
  • 网站建设都包括什么做视频网站 投入
  • 自己主机域名网站开发什么是网站名称文件夹
  • 流量网站怎么盈利怎么做内网网站
  • 用个人电脑做服务器建网站响应式外贸营销网站
  • 网站子站怎么做网站建设项目验收单
  • cc0图片素材网站大连庄河网站建设
  • 电子政务和网站建设自评建网站是什么专业类别
  • wordpress打开网站前广告深圳百度关键字优化
  • 外包做网站网站建设大约多长时间
  • 广州微网站制作上海网站建设基础
  • 著名网站用什么语言做后台商城网站开发案例
  • 建站工具华为株洲网站排名优化
  • 兰州营销型网站wordpress那个版本好用
  • 个人免费开店的网站桃源网站建设
  • 如何自己创建网站打赏网站怎么建设
  • 网站下载的app删除了怎么找到wordpress 3.8漏洞
  • 网站开发属于商标哪个类别创建企业网站
  • 小说网站怎么建设pc网站与手机网站
  • 网站开发和前端开发网站登不上去的原因
  • 怎么查网站哪里做的谷歌网站模板