当前位置: 首页 > news >正文

《灵珠觉醒:从零到算法金仙的C++修炼》卷十·混元大罗(91)混元无极破 NP - 旅行商问题(动态规划 + 状态压缩)

《灵珠觉醒:从零到算法金仙的C++修炼》卷十·混元大罗(91)混元无极破 NP - 旅行商问题(动态规划 + 状态压缩)

哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的混元大罗天,天际间弥漫着 NP 问题的挑战,代表着组合优化的极限。天的入口处有一块巨大的石碑,上面刻着一行文字:“欲破此天,需以混元之力,破 NP,旅行商问题显真身。”

哪吒定睛一看,石碑上还有一行小字:“当城市距离矩阵为:

0 2 9 10
1 0 6 4
15 7 0 8
6 3 12 0

时,旅行商的最短路径为1 -> 3 -> 2 -> 4,总距离为2 + 4 + 7 + 3 = 16。”哪吒心中一动,他知道这是一道关于旅行商问题的难题,需要通过动态规划和状态压缩来解决。

暴力解法:混元大罗天的初次尝试

哪吒心想:“要解决旅行商问题,我可以尝试枚举所有可能的路径,计算每条路径的总距离,然后找到最短的那条。”他催动混元之力,通过递归生成所有可能的排列,计算每条路径的总距离。

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int tsp(vector<vector<int>>& dist, vector<bool>& visited, int current, int n) {
   
    if (all_of(visited.begin(), visited.end(), [](bool v) {
    return v; })) {
   
        return dist[current][0];
    }
    int minDist = INT_MAX;
    for (int i = 1; i < n; ++i) {
   
        if (!visited[i]) {
   
            visited[i] = true;
            int temp = tsp(dist, visited, i, n) + dist[current][i];
            if (temp < minDist) {
   
                minDist = temp;
            }
            visited[i] = false;
        }
    }
    return minDist;
}

int main() {
   
    vector<vector<int>> dist = {
   
        {
   0, 2, 9, 10},
        {
   1, 0, 6, 4},
        {
   15, 7, 0, 8},
        {
   6, 3, 12, 0}
    };
    int n = dist.size();
    vector<

相关文章:

  • 遇到无法连接香港服务器可能是什么原因导致的呢
  • 安宝特应用 | 工业AR技术赋能高端制造领域验收流程数字化转型
  • #在docker中启动mysql之类的容器时,没有挂载的数据...在后期怎么把数据导出外部
  • 浅谈filebeat实现日志采集
  • HTML5 新元素:革新网页开发体验
  • 人工智能-深度学习导学-01
  • Selenium自动化:玩转浏览器,搞定动态页面爬取
  • JavaScript基础-window.localStorage
  • odo18实施——销售-仓库-采购-制造-制造外包-整个流程自动化单据功能的演示教程
  • vue3 脚手架初始化项目生成文件的介绍
  • es --- 集群数据迁移
  • C++11QT复习 (十四)
  • Qt中的元对象系统
  • 基于chatgpt得到的生活成本计算
  • 开源免费虚拟化软件PVE功能介绍
  • 服务器报错:xxx/libc.so.6: version `GLIBC_2.32‘ not found
  • 软件工程第二章
  • STM32 基础2
  • 华为交换机上配置流量策略根据IP限速
  • CentOS安装Docker
  • 一周观展|一批重量级考古博物馆开馆:从凌家滩看到孙吴大墓
  • C919上海虹桥-深圳航线开通,东航今年计划再接收10架C919
  • 83岁山水花鸟画家、书法家吴静山离世,系岭南画派代表人物
  • 以军称已开始在加沙的新一轮大规模攻势
  • 夜读丨什么样的前程值得把春天错过
  • “朱雀玄武敕令”改名“周乔治华盛顿”?警方称未通过审核