【动规递推】旅行(travel.pas/c/cpp)

这是一个关于旅行问题的动态规划算法解析。给定N个城市,每个城市人口小于等于1000,从城市1出发,遍历所有城市并返回城市1,目标是最小化过路费。题目中提到暴力搜索效率低,而使用动态规划可以提高求解效率。状态定义为f[i][j]表示1到i和j到1的最优代价,通过转移方程求解,最终枚举i找到f[i][n]+cost[i,n]或f[n][i]+cost[n,i]的最小值作为答案。" 104272261,8563392,解决Gradle版本问题:Failed to resolve,"['Android开发', 'Gradle', '构建工具']
摘要由CSDN通过智能技术生成

Problem 3 :旅行

(travel.pas/c/cpp)

N个城市,其中第i个城市的人口为pi,所有城市的人口都小于等于1000。为了鼓励人们从人口多的城市转移向人口少的城市,规定从城市A到城市B所需要支付的过路费为

 

,现在你要从1号城市出发,不重复的遍历其余N-1个城市,最后回到1号城市,要求制定一个遍历的顺序使得最后支付的总过路费最少.

 

输入数据

   

第一行输入一个正整数n。

以下一行n个正整数,其中第i个数表示pi

 

输出数据

一个数,为最小费用

 

样例输入

 

3

7 2 7

 

样例输出

 

4778

 

40%的数据n<=10

100%的数据n<=100

 

这一题如果暴搜的话得分率很低

当时考试只得了10分,后来看了题解才知道用动规

首先状态,用f[i,j]表示1-->i 和 j-->1 的最优代价

    边界为f[1][1]=0  (没有走当然没有代价)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值