Uva 116 Unidirectional TSP
来源:互联网 发布:优化国土空间开发格局 编辑:程序博客网 时间:2024/05/22 17:11
典型的动态规划问题,类似于数字三角形的感觉。要求字典序路径。
#include <algorithm>#include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <map> using namespace std; int v[110][110],dp[110][110],path[110][110];int m,n;int main(){while(scanf("%d%d",&m,&n) == 2){for(int i=1; i<=m; i++)for(int j=1; j<=n; j++)scanf("%d",&v[i][j]);memset(dp, 0x3f, sizeof(dp));for(int i=1; i<=m; i++)dp[i][n] = v[i][n];for(int j=n-1; j>0; j--){for(int i=1; i<=m; i++){int row[3] = {i, i-1, i+1};if(i == 1) row[1] = m;else if(i == m) row[2] = 1;sort(row, row + 3);//!保证字典序for(int k=0; k<3; k++){int tmp = dp[row[k]][j+1] + v[i][j];if(dp[i][j] > tmp){dp[i][j] = tmp;path[i][j] = row[k];//记录路径}}}}int ans = 0x3f3f3f3f,now = 1;for(int i=1; i<=m; i++){if(ans > dp[i][1]){ans = dp[i][1];now = i;}}cout << now;for(int i=path[now][1],j=2; j<=n; i=path[i][j], j++)//打印路径cout << " " << i;cout << endl;cout << ans << endl;}return 0;}
0 0
- UVa 116 Unidirectional TSP
- UVA 116 - Unidirectional TSP
- UVa 116 - Unidirectional TSP
- uva 116 Unidirectional TSP
- UVa 116Unidirectional TSP
- UVa 116 - Unidirectional TSP
- Uva 116 - Unidirectional TSP
- UVa 116 - Unidirectional TSP
- Uva - 116 - Unidirectional TSP
- UVa 116 - Unidirectional TSP
- uva 116 - Unidirectional TSP
- UVa:116 Unidirectional TSP
- uva 116 Unidirectional TSP
- UVa 116 - Unidirectional TSP
- uva 116 Unidirectional TSP
- uva 116 Unidirectional TSP
- UVA-116 - Unidirectional TSP
- UVa 116 - Unidirectional TSP
- LRESULT理解 .
- Android开源项目分类汇总【畜生级别】
- java属性初始化初始化
- tomcat server.xml配置详解
- 它山之石
- Uva 116 Unidirectional TSP
- EditText文本框之外任何地方隐藏键盘的解决办法
- Python核心编程 第六章
- 【机房重构】一步一步往上爬——数据库设计
- POJ2406 Power Strings next数组应用
- 在网页站点使用Ajax访问CAS保护网址时,报not allowed access错误的解决方法
- linux umount命令参数及用法详解---linux卸载文件系统命令
- CSS命名规范
- Windows 7图形架构解析