TSP问题(状压DP+Floyd解决方式)
来源:互联网 发布:将拍成网络剧的小说 编辑:程序博客网 时间:2024/06/16 12:50
目标算法:状态压缩DP+Floyd
应用范围:TSP
#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int map[12][12];int dp[1<<11][12];int n,ans,Min;const int Inf = 0x3f3f3f;int main(){ while(~scanf("%d",&n) && n) { for(int i=0;i<=n;i++) { for(int j=0;j<=n;j++) { scanf("%d",&map[i][j]); } } for(int k=0;k<=n;k++) { for(int i=0;i<=n;i++) { for(int j=0;j<=n;j++) { map[i][j] = min(map[i][j],map[i][k]+map[k][j]); } } } for(int s=0;s<=(1<<n)-1;s++) { for(int i=1;i<=n;i++) { if(s & (1<<(i-1))) { if(s == (1<<(i-1))) dp[s][i] = map[0][i]; else { dp[s][i] = Inf; for(int j=1;j<=n;j++) { if(s & (1<<(j-1)) && j != i) dp[s][i] = min(dp[s^(1<<(i-1))][j]+map[j][i],dp[s][i]); } } } } } ans = dp[(1<<n)-1][1] + map[1][0]; for(int i=2;i<=n;i++) { if(dp[(1<<n)-1][i] + map[i][0] < ans) ans = dp[(1<<n)-1][i] + map[i][0]; } printf("%d\n",ans); }}
0 0
- TSP问题(状压DP+Floyd解决方式)
- POJ 3311状压dp+floyd--TSP问题(货郎担问题||旅行商问题)
- hdu 4568 (状压dp TSP问题)
- TSP(旅行商问题)-状压dp
- 旅行商问题 TSP问题 状压dp入门 + floyd poj 3311 hdu 5418
- POJ 3311 Hie with the Pie (Floyd + 状压dp 简单TSP问题)
- HDU_3681 TSP问题,状压DP
- poj3311 TSP问题 状压DP
- TSP问题(状压DP求解)
- COdevs 题目2800 送外卖(Floyd+状压DP,TSP裸题)
- POJ 3311-Hie with the Pie(floyd+TSP 状压DP)
- POJ 3329 TSP变形 / floyd预处理+状压DP
- hdu 3001 Travelling (TSP问题,状压dp)
- hdu 4284 Travel(壮压DP&TSP&floyd)
- HDU2224 TSP(货郎担)问题DP
- POJ3311(TSP问题,状态压缩DP)
- 货郎担问题TSP(dp解法)
- DP求解TSP问题
- 常用Util类集合
- 中断及定时器实现时钟功能
- Java关键字final
- 六种常用算法——转载
- android 后台服务、通知信息
- TSP问题(状压DP+Floyd解决方式)
- js遍历/迭代数组
- Android实现Facebook第三方分享
- stardic字典库下载 --批量解压缩和转移
- 树形dp基础题
- UICollectionView 设置头标题和头标题的高度
- 【Java学习】Java IO-File类的理解和总结
- 常见的几种RuntimeException
- jQuery Ajax 实例 ($.ajax、$.post、$.get)