TSP问题
2015-08-23 00:22
169 查看
Hie with the Pie
题目传送:POJ - 3311 - Hie with the PieAC代码:
[code]#include <map> #include <set> #include <list> #include <cmath> #include <deque> #include <queue> #include <stack> #include <bitset> #include <cctype> #include <cstdio> #include <string> #include <vector> #include <complex> #include <cstdlib> #include <cstring> #include <fstream> #include <sstream> #include <utility> #include <iostream> #include <algorithm> #include <functional> #define LL long long #define INF 0x7fffffff using namespace std; int n; int mp[15][15]; int dp[1300][13];//dp[state][i]表示到达i点状态为state的最短距离 void floyd() { for(int k = 0; k <= n; k ++) { for(int i = 0; i <= n; i ++) { for(int j = 0; j <= n; j ++) { if(mp[i][j] > mp[i][k] + mp[k][j]) { mp[i][j] = mp[i][k] + mp[k][j]; } } } } } int main() { while(scanf("%d", &n) != EOF) { if(n == 0) break; for(int i = 0; i <= n; i ++) { for(int j = 0; j <= n; j ++) { scanf("%d", &mp[i][j]); } } floyd(); memset(dp, 0x3f, sizeof(dp)); for(int state = 0; state < (1 << n); state ++) {//枚举所有状态 for(int i = 1; i <= n; i ++) { if(state & (1 << (i - 1))) {//状态中已经经过了城市i if(state == (1 << (i - 1))) {//状态中只经过城市i dp[state][i] = mp[0][i]; } else {//状态中除了经过了城市i还经过了其他城市 for(int j = 1; j <= n; j ++) { if(i != j && state & (1 << (j - 1))) { dp[state][i] = min(dp[state][i], dp[state ^ (1 << (i - 1))][j] + mp[j][i]); } } } } } } int ans = INF; for(int i = 1; i <= n; i ++) { ans = min(ans, dp[(1 << n) - 1][i] + mp[i][0]); } printf("%d\n", ans); } return 0; }
相关文章推荐
- 母函数法解决整数划分
- 设计模式之工厂模式(2)
- Gym 100733J Summer Wars 题解:灵活运用扫描线的思想
- 1)Win10-UWA开发 UWP应用操作方法、Windows 10应用程序的指南
- Android APK反编译详解(非常有用)
- Java深入学习之--初始化
- DirectShow摄像头采集
- Debatching(Splitting) XML Message in Orchestration using DefaultPipeline - BizTalk 2010
- Ubuntu解决Flash安装问题
- Ubuntu解决Flash安装问题
- MAC MySQL配置安装及ROOT权限设置
- Easyui datagrid editor为combobox时指定数据源
- Android Studio中导入Android项目StepbyStep
- python执行外部程序模块pyshell
- 俄罗斯律师要求禁用Win 10是愚弄百姓之举
- Android学习笔记(十一)
- Linux命令常见说明(8月20日练习)
- HDU 5417 数学题
- LeetCode Remove Linked List Elements
- Android学习之基于显式的Intent的通讯