算法入门 24. TSP问题(状态压缩DP)

2023-11-16

TSP问题

问题描述如下:
假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。

#include<iostream>
using namespace std;
const int maxn=16;
int n;
int d[maxn][maxn];
int dp[1 << maxn][maxn];
void init(){
    cin>>n;
    int x,y,m;
    for(int i=0;i<n;i++){
        cin>>x>>y>>m;
        d[x][y]=m;
    }
}
int rec(int S,int v){
    if(dp[S][v]>=0) return dp[S][v];
    if(S==(1<<n)-1&&v==0){
        return  dp[S][v]=0;
    }
    int res=1000010;
    for(int u=0;u<n;u++){
        if(!(S>>u&1)){
            res=min(res,rec(S|1<<u,u)+d[v][u]);
        }
    }
    return dp[S][v]=res;
}
void solve(){
    memset(dp, -1, sizeof(dp));
    cout<<rec(0, 0)<<endl;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法入门 24. TSP问题(状态压缩DP) 的相关文章

  • Codeforce 题目621C Wet Shark and Flowers(期望)

    C Wet Shark and Flowers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output st
  • L2-012 关于堆的判断 (25 分)

    include
  • 1603A - Di-visible Confusion

    1603A Di visible Confusion 题目 一个长度为N的数组从a1 a2 an 如果在存在不能被整除则可以删除 剩下的数变为a1 a2 an 1 求是否能使得数组为空 题解 每个数都会因为前一个数被删除而前移 所以遍历所有
  • 11. 盛最多水的容器 (leetcode)

    题目描述 给定一个长度为 n 的整数数组 height 有 n 条垂线 第 i 条线的两个端点是 i 0 和 i height i 找出其中的两条线 使得它们与 x 轴共同构成的容器可以容纳最多的水 返回容器可以储存的最大水量 说明 你不能
  • 学习链表必备的1w个技巧Java版本

    链表 关于作者 作者介绍 博客主页 作者主页 简介 JAVA领域优质创作者 一名在校大三学生 在校期间参加各种省赛 国赛 斩获一系列荣誉 关注我 关注我学习资料 文档下载统统都有 每日定时更新文章 励志做一名JAVA资深程序猿 简介 链表是
  • Java语言实现稀疏数组

    稀疏数组 关于作者 作者介绍 博客主页 作者主页 简介 JAVA领域优质创作者 一名在校大三学生 在校期间参加各种省赛 国赛 斩获一系列荣誉 关注我 关注我学习资料 文档下载统统都有 每日定时更新文章 励志做一名JAVA资深程序猿 文章目录
  • 蓝桥杯2022真题:裁纸刀、修剪灌木、刷题统计、纸张尺寸、数位排序、考勤刷卡、卡片、小平方、李白打酒加强版

    目录 1 裁纸刀 2 修剪灌木 3 刷题统计 4 纸张尺寸 5 数位排序 6 考勤刷卡 7 卡片 8 小平方 9 李白打酒加强版 1 裁纸刀 题目无法截图 看题点击 https www lanqiao cn problems sort st
  • 蓝桥杯基础试题汇总

    目录 1 试题 基础练习 A B问题 2 数列问题 3 试题 基础练习 十六进制转八进制 4 试题 基础练习 十六进制转十进制 5 试题 基础练习 十进制转十六进制 6 试题 基础练习 序列求和 7 试题 基础练习 圆的面积 8 试题 基础
  • 代码随想录算法训练营day1~18总结

    时间 空间复杂度 解题过程中运用的函数补充说明 数组 day1 http t csdn cn dBSgY day2 http t csdn cn JTDvH 数组总结 链表 day3 http t csdn cn mJx9V day4 ht
  • leetcode刷题:加一

    题目描述 给定一个由整数组成的非空数组所表示的非负整数 在该数的基础上加一 最高位数字存放在数组的首位 数组中的每个元素只存储单个数字 你可以假设除了整数0之外 这个整数不会以零开头 示例 输入 digits 1 2 3 输出 1 2 4
  • 代码随想录算法训练营第四十一天| 343. 整数拆分 96.不同的二叉搜索树

    今天两题都挺有难度 建议大家思考一下没思路 直接看题解 第一次做 硬想很难想出来 343 整数拆分 代码随想录 视频讲解 动态规划 本题关键在于理解递推公式 LeetCode 343 整数拆分 哔哩哔哩 bilibili public in
  • 判断一个字符串中各个字符出现的次数

    我这里使用了两种方法 两种方法思路差不多 但是使用处理字符串的方法不一样 所以执行效率不一样 long xxx System nanoTime 这个方法用来标记执行方法前后的时间点 看最终执行完所用时间 纳秒 第一种方法效率高 时间快 不是
  • 十种常用机器学习算法入门

    弱人工智能近几年取得了重大突破 悄然间 已经成为每个人生活中必不可少的一部分 以我们的智能手机为例 看看到底温藏着多少人工智能的神奇魔术 下图是一部典型的智能手机上安装的一些常见应用程序 可能很多人都猜不到 人工智能技术已经是手机上很多应用
  • 代码随想录算法训练营第一天

    数组理论基础 文章链接 代码随想录 记忆 数组是存放在连续内存空间上的相同类型数据的集合 数组下标都是从0开始的 数组内存空间的地址是连续的 数组的元素是不能删的 只能覆盖 在C 中二维数组是连续分布的 像Java是没有指针的 同时也不对程
  • PTA L2-010 排座位 (25 分)

    include
  • 排序函数c++函数模板实现

    冒泡排序 插入排序 选择排序 归并排序 快排 堆排序 冒泡排序 插入排序 选择排序 这种简单的时间复杂度是O n2 归并排序 快排 堆排序时间复杂度O nlogn include
  • 蓝桥杯 BEGIN-2 long long int的使用

    include
  • 【leetcode算法】02-两数之和

    目录 1 题目描述 2 解题思路 第一种解法 暴力枚举 第二种解法 哈希映射 3 代码展示 4 小结 前言 声明 本文仅为学习记录 图片以及题目资源来自牛客和力扣网 如有侵权请联系删除 大家好 我是尼根 一个又菜又想学算法的准程序猿 今天为
  • HDU-2000

    题目本身不难 但是对于初学者 难的是数据的读入 方法一 使用getchar 去除每一行的空格符 include
  • 筛选素数之欧拉筛法 python实现 附带证明

    返回类型 列表 说明 返回小于upperBound的所有素数 def ouLaShai upperBound filter False for i in range upperBound 1 primeNumbers for num in

随机推荐

  • DB2约束

    清单 1 查询数据库目录以判断哪些数据库列可为空 db2 select tabname colname nulls from syscat columns where tabschema MELNYK and nulls N 仅单独存在 惟
  • 告别BeanUtils,Mapstruct从入门到精通

    如果你现在还在使用BeanUtils 看了本文 也会像我一样 从此改用Mapstruct 对象之间的属性拷贝 之前用的是Spring的BeanUtils 有一次 在学习领域驱动设计的时候 看了一位大佬的文章 他在文章中提到使用Mapstru
  • LSB(Least Significant Bit)和MSB(Most Significant Bit)

    LSB Least Significant Bit 意为最低有效位 MSB Most Significant Bit 意为最高有效位 若MSB 1 则表示数据为负值 若MSB 0 则表示数据为正 MSB高位前导 LSB低位前导 谈到字节序的
  • MVC架构

    10 MVC 什么是MVC Model view Controller 模型视图控制器 10 1 以前的架构 用户可以直接访问控制层 控制层可以直接操作数据库 Servlet gt CURD gt 数据库 弊端 程序十分臃肿 不利于维护 S
  • hiveSql 重分组聚合问题

    hiveSql 重分组聚合问题 问题 分析 实现 最后 问题 将下图中A表转变为B和C 即A gt B A gt C 分析 1 首先看A gt B 可见是将name列分组 取最大组内最大id 介绍两种求解方式 1 很容易想到 开窗函数fir
  • html使用iframe包含pdf文件,HTML embedded PDF iframe

    It s downloaded probably because there is not Adobe Reader plug in installed In this case IE it doesn t matter which ver
  • 【数据架构系列-06】一文搞懂数据模型的3种类型——概念模型、逻辑模型、物理模型

    数据模型就是模拟现实世界的方法论 是通向智慧世界的基石 从现实世界发展到智慧世界 要数经历现实世界 信息世界 计算机世界 数据世界 智慧世界五个不同的世界 我们天生具有从混沌的世界抽象信息变为信息世界的能力 但是到另外几个世界需要我们懂得计
  • spring的自动装配即装配的各种模式

    Spring的自动装配 无须在Spring配置文件中描述javabean之间的依赖关系 IOC容器会自动建立JavaBean之间的关联关系 根据属性名称自动装配autowire byName 根据数据类型自动装配autowire byTyp
  • 完整安装datax-web教程

    1 安装mysql5 7 a 创建目录下载安装rpm包 mkdir p opt software cd opt software wget i c http dev mysql com get mysql57 community relea
  • 【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)

    个人主页 努力学习的少年 版权 本文由 努力学习的少年 原创 在CSDN首发 需要转载请联系博主 如果文章对你有帮助 欢迎关注 点赞 收藏 一键三连 和订阅专栏哦 目录 一 智能指针的基本概念 二 智能指针的定义和使用 三 auto ptr
  • Pytorch-Lightning基本方法介绍

    文章目录 LIGHTNINGMODULE Minimal Example 一些基本方法 Training Training loop Validation loop Test loop Inference Inference in rese
  • Qt之再谈阴影边框

    前面就窗口阴影已经写过一篇博客 使用九宫格的思路实现的 在我看来 凡是用程序能实现的尽量不要使用图片代替 在保证效率的前提下 今天再次分享关于我的一些小见解 先看效果 窗口阴影任意调节 包括阴影像素 是否圆角等 直接上代码 void Dro
  • linux如何查看入口地址,宝塔Linux面板安全入口地址忘了(方法一)

    宝塔Linux面板安全入口地址忘了 方法一 面板 地址 入口 宝塔 所示 宝塔Linux面板安全入口地址忘了 方法一 易采站长站 站长之家为您整理了宝塔Linux面板安全入口地址忘了 方法一 的相关内容 现在新安装的宝塔 Linux 面板时
  • win10-未知的USB设备-解决自己问题的记录

    若是没有解决你的问题 再找找其他办法看看 我也是网上搜的 刚好解决了我的问题我就记录了一下而已 哈哈哈 原文链接 修复 未知的USB设备 设备描述符请求失败 在Windows 10中 1 设备管理器 gt 通用串行总线控制器 gt 未知US
  • 基于opencv的手势识别

    大家好 我是一名本科生 我的主要学习方向是计算机视觉以及人工智能 按照目前的学习进度来说 我就是一小白 在这里写下自己编写的程序 与大家分享 记录一下自己的成长 今天与大家分享的是基于OpenCv的手势识别 思路分析 获取图片 在图片中找到
  • unity添加多个相机渲染物体多个视角的图片

    添加相机 我渲染物体多视角的图片是要用到cave空间 所以添加了四个相机 并且都放在空物体下面 还有两个物体 用在cave空间要保证四个相机的位置一致 rotation互成90 前 0 0 0 右 0 90 0 左 0 270 0 下 90
  • 用matplotlib动画功能,一帧一帧的录制排序算法

    1 matplotlib绘制动画 matplotlib是python中最经典的绘图包 里面animation模块能绘制动画 首先导入小例子使用的模块 from matplotlib import pyplot as plt from mat
  • 高性能MySQL:创建高性能索引

    文章目录 前言 一 索引的语法 1 1 创建索引 1 2 删除索引 1 3 查看索引 1 4 查看查询语句使用索引的情况 二 索引的优缺点 2 1 索引的优点 2 2 索引的缺点 三 索引的类型 3 1 按照功能逻辑区分 3 2 按照数据结
  • BH1750简单介绍

    bh1750是16位数字输出型 环境光强度传感器集成电路 主要应用有移动电话 液晶电视 笔记本电脑 便携式游戏机 数码相机 数码摄像机 汽车定位系统 液晶显示器 目录 1 bh1750中文资料 2 bh1750引脚说明 3 bh1750传感
  • 算法入门 24. TSP问题(状态压缩DP)

    TSP问题 问题描述如下 假设有一个旅行商人要拜访n个城市 他必须选择所要走的路径 路径的限制是每个城市只能拜访一次 而且最后要回到原来出发的城市 路径的选择目标是要求得的路径路程为所有路径之中的最小值 include