TSP - 状态压缩dp
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相关推荐
- hdu 5067(状态压缩dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5067 解题思路:这道题开始想复杂了,想用bfs去求出最短距离,其实没必要,因为题目中没有阻碍关系,所以 ...
- hdu 5418(状态压缩dp+Floyd)
点击打开链接 解题思路:这道题目和TSP问题很相似,唯一不同的是同一个点可以重复走几次.... 这道题目只有16个顶点,所以很容易想到状态压缩dp,dp[i][j]表示到达顶点i时的状态为j的最小花费 ...
- 状态压缩DP(大佬写的很好,转来看)
奉上大佬博客 https://blog.csdn.net/accry/article/details/6607703 动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的 ...
- Light OJ 1316 A Wedding Party 最短路+状态压缩DP
题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...
- 由NP完全问题引出动态规划——状态压缩DP
" 所有部分都应当在非强制的情况下组合回一起.要记住,你重组的那部分原来就是你拆解的.因此,如果你不能让它们组合回来的话,那一定是有原因的.要想尽一切办法,除了用锤头." – IB ...
- 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...
- POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)
poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...
- BZOJ1688|二进制枚举子集| 状态压缩DP
Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...
- hdu1074 状态压缩dp+记录方案
题意: 给你一些作业,每个作业有自己的结束时间和花费时间,如果超过结束时间完成,一天扣一分,问你把n个作业完成最少的扣分,要求输出方案. 思路: 状态压缩dp,记录方案数的地方 ...
最新文章
- 如何防止android app被误删除,如何避免手机清理缓存时误删了重要文件【注意事项】...
- 查看python安装路径
- ASP.NET MVC 学习1
- 了解Scaffold Generator (转载)
- Acwing202. 最幸运的数字
- 揭秘 RocketMQ 新特性以及在金融场景下的实践
- Dapp开发教程四 Asch Dapp Dice Game
- 如何实现报表的批量打印需求
- 北邮人工智能学院刘勇教授实验室,招聘博士后研究人员
- BZOJ3592 : Architext
- Python 多线程总结
- 买不到口罩怎么办?Python 爬虫帮你时刻盯着自动下单!| 原力计划
- 一个程序员的郁闷吐槽
- sql over 用法
- 安全生产知识竞赛答题小程序
- 实时协同编辑的实现: 编辑锁, OT算法
- 三丈红尘,八千里风月
- RMVB格式介绍,如何播放该格式视频,以及将RMVB转换成MP4?
- java日期格式中MMM的问题
- 随笔——研一,研究不出啥是啥