当前位置: 首页 > 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.cadmedia.cn/news/2691.html

相关文章:

  • 唐山城乡建设网站河北百度seo关键词
  • 问答论坛网站建设关键词快速排名平台
  • 网站建设推广视频怎么优化网站关键词的方法
  • 响应式网站建设如何简单制作html静态网页
  • c2c商城网站建设在线磁力搜索引擎
  • 做网站的版式会侵权吗免费的建站平台
  • 扶风高端企业网站建设手机在线制作网站
  • 宣传图制作网站网站查询入口
  • 阿拉巴巴开店网站建设专业海外网站推广
  • 网站关键字没有排名什么是seo教程
  • 网页导航设计步骤seo技术优化服务
  • 东莞市公共资源网北京网站seo招聘
  • 北京市建设教育协会网站查询seo搜索是什么
  • 汉中网站制作seo是什么职业
  • 品牌建设理论包括哪些内容百度seo优化及推广
  • 苏州城乡和住房建设局网站首页定制网站和模板建站
  • 游戏网站建设流程查询网官网
  • 网站建设工资多少钱深圳网络优化公司
  • 网站建设服务费进入什么科目google seo实战教程
  • 建设 网站工作汇报厦门最快seo
  • 河北大型网站建设线上培训机构排名前十
  • 网络营销专业培训机构河南seo快速排名
  • 手机投资理财网站建设江西seo推广方案
  • 网站建设云南南宁网站seo优化公司
  • 网站建设服务器维护内容亚马逊关键词搜索工具
  • 网站建设需求书网址域名查询
  • 无线设置网站长沙网站seo推广
  • 网站建设丿金手指15青岛百度seo
  • 当当网电子商务网站建设新手怎么做销售
  • 教育网站建设市场分析计划书广州百度推广优化