动态规划特训:旅行商问题(回溯法或记忆搜索法)
发布时间:2024-11-12 05:26
解题思路:可以设定一个集合s表示还未访问的城市,i表示现在所在的城市,状态转移至任一还未访问的城市,转移方程为:dp[i][s]=min(dis[i][j]+dp[j][s^1<<j]);而回溯法比较直观,这里直接给出代码。
题目大意:有n个城市,两两之间均有道路直接相连。给出所有道路的长度(矩阵形式)。求一条经过每个城市一次且仅一次,最后回到起点的路线,使得经过的道路总长度最短。N<=15,城市编号为1-n。
输入:
4
0 3 6 7
5 0 2 3
6 4 0 2
3 7 5 0
4
0 8 5 6
6 0 8 5
7 9 0 5
9 7 8 0
输出:
10
23
记忆搜索法:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define inf 1<<30
int dp[21][1<<21],n,dis[21][21];
int f(int nowp,int s)
{
if(s==1) //这里不是0!集合所有数都去掉后为1!!因为集合编号从1开始,而非从0
{
if(nowp==1) //回到1为需要的终点
return 0;
else return inf; //否则返回无穷被丢弃
}
for(int i=1;i<=n;i++)
{
if(s&
网址:动态规划特训:旅行商问题(回溯法或记忆搜索法) https://www.yuejiaxmz.com/news/view/46264
下一篇: 乐清开展旅行社专项执法检查
相关内容
一起探索旅游景点、行程规划、住宿选择和旅行必备物品,让旅行更轻松愉快!溯源海外好物,抖音电商金产地海外计划 x 抖音电商全球购美国首站收官
10个好用的旅游规划软件,旅行达人必备!
情侣去桂林旅游自由行线路攻略,行程规划推荐
如何提高记忆力:7种自然(高效)的方法
思维导图高效学习法,提升记忆能力的有效途径
世界公认最好的学习法,提高学习效率记忆力,收藏起来活学活用
会玩儿的年轻人,已经开发出10种旅行新方式了
搜狗图片搜索
闺蜜旅游攻略:更佳旅行目的地、行程规划、住宿和活动推荐