2017-08-11 21:10:21

艾教写的

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<map>
#include<set>
#include<stack>
using namespace std;
typedef long long LL;
int n;
int dis[20][20];
int dp[20][1<<16];
int min(int x,int y)
{if (x==-1) return y;if (y==-1) return x;if (x<=y) return x;return y;
}
int main()
{while(scanf("%d",&n) && n){for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)cin>>dis[i][j];for(int k=0;k<=n;k++)for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)if (i!=j && j!=k && i!=k)dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);n++;memset(dp,-1,sizeof(dp));dp[0][0]=0;for(int state=0;state<(1<<n);state++){for(int i=0;i<n;i++)if (dp[i][state]!=-1){for(int j=0;j<n;j++)if (((1<<j)&state)==0){dp[j][state|(1<<j)]=min(dp[j][state|(1<<j)],dp[i][state]+dis[i][j]);}}}int ans=dp[0][(1<<n)-1];cout<<ans<<endl;}
}

转载于:https://www.cnblogs.com/pprp/p/7347980.html

TSP - 状态压缩dp相关推荐

  1. hdu 5067(状态压缩dp)

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

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

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

  3. 状态压缩DP(大佬写的很好,转来看)

    奉上大佬博客 https://blog.csdn.net/accry/article/details/6607703 动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的 ...

  4. Light OJ 1316 A Wedding Party 最短路+状态压缩DP

    题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...

  5. 由NP完全问题引出动态规划——状态压缩DP

    " 所有部分都应当在非强制的情况下组合回一起.要记住,你重组的那部分原来就是你拆解的.因此,如果你不能让它们组合回来的话,那一定是有原因的.要想尽一切办法,除了用锤头." – IB ...

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

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

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

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

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

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

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

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

最新文章

  1. 如何防止android app被误删除,如何避免手机清理缓存时误删了重要文件【注意事项】...
  2. 查看python安装路径
  3. ASP.NET MVC 学习1
  4. 了解Scaffold Generator (转载)
  5. Acwing202. 最幸运的数字
  6. 揭秘 RocketMQ 新特性以及在金融场景下的实践
  7. Dapp开发教程四 Asch Dapp Dice Game
  8. 如何实现报表的批量打印需求
  9. 北邮人工智能学院刘勇教授实验室,招聘博士后研究人员
  10. BZOJ3592 : Architext
  11. Python 多线程总结
  12. 买不到口罩怎么办?Python 爬虫帮你时刻盯着自动下单!| 原力计划
  13. 一个程序员的郁闷吐槽
  14. sql over 用法
  15. 安全生产知识竞赛答题小程序
  16. 实时协同编辑的实现: 编辑锁, OT算法
  17. 三丈红尘,八千里风月
  18. RMVB格式介绍,如何播放该格式视频,以及将RMVB转换成MP4?
  19. java日期格式中MMM的问题
  20. 随笔——研一,研究不出啥是啥

热门文章

  1. helm3添加harbor仓库:带鉴权--username --password
  2. docker安装nginx并进行-v挂载
  3. java代码执行流程
  4. Ubuntu18.04完全卸载vscode
  5. MySQL添加中文记录报错解决方法
  6. springboot websocket发送和接收消息代码资源下载
  7. Hadoop分布式文件系统hdfs的shell操作命令大全
  8. Matlab中更改fig文件中线宽
  9. Python常见错误及解决方案(持续更新)
  10. 如何快速学会嵌入式?