排队买票问题的动态规划算法?

来源:百度知道 编辑:UC知道 时间:2024/05/23 12:19:51
一场演唱会即将举行,现有n个歌迷排队买票,一人面一张票,而售票处规定,一人每次只能买一张票,假设第i位歌迷买一张票需要时间T[i](1<=i<=n),队伍中相邻的两位歌迷(第j个人和第j+1个人)也可以由其中一个人买两张票,而另一个人就可以不用排队了,则这两位歌迷买两张票的时间变为R[j],且有R[j]<T[j]+T[j+1],这样做就可以缩短后面歌迷的等待时间,加快整个售票的进程。现在给出 n ,T[j]和R[j],求使每个人都买到票的最短时间和算法。
很急很急!谢谢啦!

如果前i个人买票的最优买票方式一确定,比如第i-1个人买一张票,则前i-1个人的买票方式也一定是最优的。即问题的最优解包含子问题的最优解。
步骤1:用F(i)表示前i个人买票的最优方式,即所需最短时间;现在要决定F(i)需要考虑两种情况:
(1)第i个人的票自己买
(2)第i个人的票由第i-1个人买