龟兔赛跑编程c语言蓝桥,龟兔赛跑
题目:
转载一位大牛写的代码。
思路及AC代码:
/*
这道题目是DP中多阶段决策的典型例题
我们将起点和终点划分到N个加电站中去
这样一共有N+2点,用DP[i]表示到第i个加电站的最小耗费时间
那么在求DP[i]的时候,DP[0]...DP[i-1]已经求得
让j从0遍历到i-1,每一个j表示最后一次充电到i点
那么状态转移方程为
DP[i] = min(DP[j] + t(j, i)) //t(j, i)表示从j充完电一直到i点(中途没有充过电)
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
const int MAX=150;
const double INF=0xfffff;//0x代表十六进制
double DP[MAX];//DP[i]表示到第i个加电站的最小耗费时间
int s[MAX];//s[i]表示到第i个加电站距离起点的距离
using namespace std;
double Min(double x,double y)//判断大小
{
return x>y?y:x;
}
int main()
{
double L;
int n,i,j;
double electricity_l,electricity_t;
double vt_rabbit,vt_ele,vt_none;
double len,sum,Time;
while(cin>>L)//输入跑道长度
{
cin>>n>>electricity_l>>electricity_t;//输入加电站的个数、电动车最大行驶距离、电动车的充电时间
cin>>vt_rabbit>>vt_ele>>vt_none;//输入兔子、电动车、乌龟用脚踏的各个速度
for(i=1;i<=n;i++)//输入各个加电站距离起点的位置
cin>>s[i];
s[n+1]=L;//把第n+1个加电站设为终点,长度为L
s[0]=0;//把第0个加电站设为起点,长度为0
DP[0]=0;//起点到起点最小耗费时间为0
for(i=1;i<=n+1;i++)
{
DP[i]=INF;//因为到第i个加电站最小耗费时间未知所以赋值无穷大
for(j=0;j
{
len=s[i]-s[j];//从第j个加电站到第i个加电站的距离
if(len>electricity_l)//如果该距离大于电动车能行驶的最大距离
Time=electricity_l/vt_ele+(len-electricity_l)/vt_none;//把电动车行驶的时间加上乌龟用脚踏的时间
else//如果小于
Time=len/vt_ele;//直接加上这段距离除于电动车的速度所得的时间
Time+=DP[j];//之后加上到第j个加电站的最优时间
if(j>0)//这里判断j>0是因为如果j==0的话,即表明从起点出发,因为起点已经充满电了所以不需要加上电动车的充电时间
{
Time+=electricity_t;//如果j>0加上电动车的充电时间
}
DP[i]=Min(DP[i],Time);//每次挑出到第i个加电站的最优时间
}
}
if(DP[n+1]
cout<
else
cout<
}
return 0;
}
龟兔赛跑编程c语言蓝桥,龟兔赛跑相关推荐
- PTA 基础编程题目集 7-22 龟兔赛跑 C语言
PTA 基础编程题目集 7-22 龟兔赛跑 C语言 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息.乌龟每分钟可以前进3米,兔子每分钟前进9米:兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于 ...
- 谷歌宣布推出Dart编程新语言
北京时间9月9日上午消息,据著名科技做网站ExtremeTech的报道,谷歌编程新语言Dart逐渐浮出水面,它是一种"结构化的Web编程"语言.早在几天前谷歌就已着手注册了一系列与 ...
- Python 或将成为法国高中的官方编程教学语言
百度智能云 云生态狂欢季 热门云产品1折起>>> Python 或将成为法国高中的官方编程教学语言,这将带来几十万甚至几百万的新用户.此消息来自 Nina ,她是微软云开发的倡导 ...
- 嵌入式编程C语言提高代码效率的14种方法
嵌入式编程C语言提高代码效率的14种方法 1.在可能的情况下使用typedef替代define.当然有时候你无法避免define,但是typedef更好. typedef int* INT_PTR; ...
- Python,美国顶尖大学里最受欢迎的编程入门语言
摘要 截止到目前,Python 已经成为目前美国顶尖大学里最受欢迎的计算机编程入门语言.计算机排名前 10 的学校里,有 8 所学校(80%)使用 Python 作为编程入门语言.在计算机排名前 39 ...
- c语言和plc编程,PLC编程C语言.ppt
PLC编程C语言 华中数控培训讲义 · PLC编程 C语言编程 PLC控制的范围 数控机床所受到的控制可分为两类:数字控制和顺序控制. 数字控制主要指对各进给轴进行精确的位置控制,包括:轴移 动距离. ...
- 主要编程教学语言的讨论
转载自:http://blog.csdn.net/myan/article/details/2033386 CSDN首页推荐了一篇文章,说两位退休的美国大学教授上书反对将Java作为编程教学语言,对此 ...
- 好好学习 天天编程—C语言之我的第一个hello world(二)
好好学习 天天编程-C语言之我的第一个hello world(二)
- 好好学习 天天编程—C语言之环境搭建(一)
好好学习 天天编程-C语言之环境搭建(一) 一.安装Visual Studio 2010及以上版本 二.搭建环境 三.编写代码 四.运行代码 Ctrl+F5 或者Ctrl+Fn+F5 如果界面不出来这 ...
最新文章
- Django: jQuery中的function学习(一)
- php 基础函数写法,字符串,常用函数
- VC++取MD5算法记录下以后用得到(转)
- [ZJOI2007] 时态同步
- payara 创建 集群_在Payara Server和GlassFish中配置密码
- 第二阶段:4.商业需求文档MRD:5.PRD-原型图
- 软件开发之文档的重要性
- Java设计模式补充:回调模式、事件监听器模式、观察者模式(转)
- Ubuntu18.04下的模拟神器RetroArch
- JAVA Swing万年历
- 关于微信刷票的Python源码
- php必应壁纸 分辨率,必应壁纸php获取接口
- 测试工程师的福利!各远程移动测试平台对比分析
- Latex学习笔记:三线表与表线控制
- 基于junit4的关于个人所得税计算的等价类与边界值_关于量子力学的基本原理
- php修改根目录,phpStudy如何修改端口或WWW目录(网站根目录)
- react native 出现程序包com.facebook.react不存在
- 基于Java的高校实验室管理系统的设计与实现
- FreeSWITCH mod_cti模块 结合 fail2ban 实现封堵恶意IP(SIP安全,防攻击)
- 基于JQData的有效前沿及投资组合优化
热门文章
- 头的各个部位示意图_牛肉的部位图解与做法+牛肉各个部位分布图及质地简介...
- Maven入门教程(十七)-Maven多Moudle项目创建
- cnblogs!I'm comeing!
- 分布式锁的一些细节问题,值得收藏
- Win11输入法的选字框不见了怎么办?
- Tik Tok跨境:不会英语可以做TikTok吗?
- 计算机网络实训报告总结,学习计算机网络的实训总结
- win10 锁屏时间无法设置 解决方法
- 国自然结题规定:经费结余50%以上或将无法结题
- SpringBoot FlyWay报错:Detected applied migration not resolved locally: