UVA1025题解——简单DP之多决策问题

本文介绍了UVA1025题目的解决方案,这是一道涉及多决策的动态规划问题。皮皮怪需要在有限时间内从车站1到达车站n,考虑不同列车的发车时间和换乘,求解最小等待时间。通过分析,提出了三种决策策略并给出了相应的动态规划状态转移方程,旨在找到最优解。
摘要由CSDN通过智能技术生成

题目链接:UVA-1025

题意:

给定n个车站,时间T,列车从车站i到车站i+1需要的时间t[i]。给定M1辆从车站1驶往车站n的列车发车时间,以及M2辆从车站n驶往车站1的列车发车时间。皮皮怪初始在车站1,要在T时刻到达车站n,问他至少要在车站等多久——车在车站停留时间忽略不计,并且假设皮皮怪特别敏捷,两辆车同时到车站他也能完成换乘,如果T时刻不可能在车站n就输出impossible。

分析:

这是一个很明显的多决策的问题,假设皮皮 i 时刻在车站 j(以dp[i][j]表示从现在开始他需要在车站等车的最少时间),那么他有三个决策:

(1)原地等一秒:dp[i][j] = dp[i+1][j]

(2)如果有向左的列车可搭乘:dp[i][j] = dp[i+t[i-1]][j-1]

(3)如果有向右的列车可搭乘:dp[i][j] = dp[i+t[i]][j+1]

我们需要做的就是在三个决策寻找最优的,也就是三个里最小的~

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<map>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<string>
#include<cstring&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值