传送门
写在前面:困=_=
思路:
f[i][j]指状态为i时最后经过的城市为j,那么转移就比较明显了
f[i|(1<<p)][p]=min(f[i|(1<<p)][p],f[i][j]+dis[j][p]f[i|(1(dis[j][p]是是两城市间的最短距离)
要求j在状态i中表示为1
初始化就是f[1][0]=0f[1][0]=0,其他全为+∞
dis数组预处理用floyed即可
注意:
1.算好范围,小心数组越界
2.最后还是要回到0城市的,所以答案是min(f[1<<n+1][i]+dis[i][0])min(f[1
代码:

#include<bits/stdc++.h>
using namespace std;
int a[16][16],dis[16][16],f[1<<16][16];
int n,ans=0x7fffffff;
main()
{scanf("%d",&n);for (int i=0;i<=n;i++)for (int j=0;j<=n;j++)scanf("%d",&dis[i][j]);for (int i=0;i<=n;i++)for (int j=0;j<=n;j++)for (int k=0;k<=n;k++)if (i!=j&&j!=k) dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);memset(f,63,sizeof(f));f[1][0]=0;for (int i=1;i<=(1<<n+1)-1;i++)for (int j=0;j<=n;j++)if ((1<<j)&i){for (int p=0;p<=n;p++)if (p!=j)f[i|(1<<p)][p]=min(f[i|(1<<p)][p],f[i][j]+dis[j][p]);}for (int i=1;i<=n;i++)ans=min(ans,f[(1<<n+1)-1][i]+dis[i][0]);printf("%d",ans);
}

【codevs2800】送外卖,状态压缩DP练习相关推荐

  1. 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)

    目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...

  2. POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)

    poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...

  3. BZOJ1688|二进制枚举子集| 状态压缩DP

    Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...

  4. hdu1074 状态压缩dp+记录方案

    题意:       给你一些作业,每个作业有自己的结束时间和花费时间,如果超过结束时间完成,一天扣一分,问你把n个作业完成最少的扣分,要求输出方案. 思路:       状态压缩dp,记录方案数的地方 ...

  5. FZU-2218 Simple String Problem(状态压缩DP)

    原题地址: 题意: 给你一个串和两个整数n和k,n表示串的长度,k表示串只有前k个小写字母,问你两个不含相同元素的连续子串的长度的最大乘积. 思路: 状态压缩DP最多16位,第i位的状态表示第i位字母 ...

  6. 《算法竞赛进阶指南》打卡-基本算法-AcWing 91. 最短Hamilton路径:位运算、状态压缩dp、dp

    文章目录 题目解答 题目链接 题目解答 分析: 状态压缩dp是用二进制数来表示状态. 数据范围n = 20, 那么状态总量就是2202^{20}220个状态. 可以按照以下思路去思考: 哪些点被用过 ...

  7. 状态压缩DP AcWing算法提高课 (详解)

    基础课的状态压缩点这里 基础课中 蒙德里安的梦想 属于 棋盘式状态压缩dp,最短Hamilton路径 属于 集合状态压缩dp 1064. 小国王(棋盘式/基于连通性) 这种棋盘放置类问题,在没有事先知 ...

  8. hdu 5067(状态压缩dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5067 解题思路:这道题开始想复杂了,想用bfs去求出最短距离,其实没必要,因为题目中没有阻碍关系,所以 ...

  9. hdu 5418(状态压缩dp+Floyd)

    点击打开链接 解题思路:这道题目和TSP问题很相似,唯一不同的是同一个点可以重复走几次.... 这道题目只有16个顶点,所以很容易想到状态压缩dp,dp[i][j]表示到达顶点i时的状态为j的最小花费 ...

  10. 状态压缩dp入门 第一题 POJ 3254 Corn Fields

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6460   Accepted: 3436 Descr ...

最新文章

  1. NLP专题论文解读:从Chatbot、NER到QA系统...
  2. 轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)
  3. 【OpenCV3】cv::Mat中的数据按行列写入txt文件中
  4. 用户在网站注册,网站通过微信发送验证码,这个操作是怎么实现的?
  5. android 添加随意拖动的桌面悬浮窗口,android 添加随意拖动的桌面悬浮窗口
  6. 查看oracle 锁定用户名,oracle用户名被锁定
  7. 城市发展规律及未来走向进行认知与预测的机构
  8. HttpClient发送get post请求和数据解析
  9. LeetCode刷题——27. 移除元素
  10. React 中实现复制到剪切板功能
  11. 88页《Redis学习文档》,从入门到精通,看这一篇就足够
  12. tensorflow padded_batch的注意事项
  13. 数值分析-数值分析下的误差分析
  14. 激光雷达运动畸变校正
  15. Excel制作动态图表
  16. python播放mp3文件
  17. 微信小程序***实现身份验证
  18. (一)protege之使用入门
  19. 手游方舟怎么输入代码_方舟自定义代码怎么输入 | 手游网游页游攻略大全
  20. 自称中本聪的他被法官怒怼:你的证词毫无可信度!

热门文章

  1. 使用Keil5构建GD32450i-EVAL工程
  2. 如何查看jsplumb.js的API文档(YUIdoc的基本使用)#华为云·寻找黑马程序员#
  3. matlab中LMI工具箱函数feasp的用法
  4. python绘图数字_绘制一个绘图,其中Yaxis文本数据(非数字)和Xaxis数字d
  5. #includebits/stdc++.h包含C++的全部头文件
  6. idea中tomcat服务器的配置
  7. 2015计算机类专业课类试卷,2015年自考《计算机应用基础》模拟试题及答案
  8. 两个线程能在cpu中同时运行吗_多核和多线程那些事
  9. selenium 表单提交结果_了解 Selenium 定位方式
  10. centos系统中,相同的shell命令,直接在命令行中可以执行,在.sh文件中运行不了的原因