UVa 116: Undirectional TSP
来源:互联网 发布:温度监测软件 编辑:程序博客网 时间:2024/06/05 14:07
简单动态规划题。用取模实现第一行与最后一行连续,注意取字典序即可。
我的解题代码如下:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define min(a,b) ((a<b)?a:b)#define max(a,b) ((a>b)?a:b)#define UL(i) ((i+M-1)%M)#define DL(i) ((i+1)%M)#define Maxm 12#define Maxn 105const int INF = 0x7fffffff;int M,N;int Table[Maxm][Maxn];int MinWeight[Maxm][Maxn], RightRow[Maxm][Maxn];bool vis[Maxm][Maxn];int dp(int i, int j){if(vis[i][j]) return MinWeight[i][j];vis[i][j] = true;if(j==N-1)return MinWeight[i][j] = Table[i][j];int tmp = min ( dp(UL(i),j+1), min ( dp(i,j+1), dp(DL(i),j+1)));RightRow[i][j] = Maxm;if(tmp == MinWeight[i][j+1]) RightRow[i][j] = i;if(tmp == MinWeight[UL(i)][j+1] && UL(i)<RightRow[i][j]) RightRow[i][j] = UL(i);if(tmp == MinWeight[DL(i)][j+1] && DL(i)<RightRow[i][j]) RightRow[i][j] = DL(i);return MinWeight[i][j] = tmp+Table[i][j];}int main(){while(cin >> M >> N){for(int i=0; i<M; i++)for(int j=0; j<N; j++)cin >> Table[i][j];memset(vis,false,sizeof(vis));int nMinWeight = INF, iRow;for(int i=0; i<M; i++){if(nMinWeight > dp(i,0)){nMinWeight = MinWeight[i][0];iRow = i;}}cout << iRow+1;for(int j=0; j<N-1; j++) cout << ' ' << (iRow = RightRow[iRow][j])+1;cout << endl << nMinWeight << endl;}return 0;}
- UVa 116: Undirectional TSP
- ACM UVa 116 - Undirectional TSP的解法
- ACM UVa 116 - Undirectional TSP的解法
- 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
- windows api 实现简单窗口
- IOS中Json解析的四种方法
- centos6 ssh-keygen 免密码 自动登陆
- 查找嵌入式C语言程序/软件中的缺陷的多种技术
- MySQL5.6.13安装
- UVa 116: Undirectional TSP
- ssh常用用法小结
- Linux2.6内核--内存管理(2)--区
- POJ 2411 Mondriaan's Dream dp(矩形填充)
- socket头文件
- win7+vs2010+opencv2.4.6调试SfM-Toy-Library-master时遇到的问题和解决办法
- 栗子:控制反转(依赖注入)IOC
- html文本框不可编辑,禁止用户修改的几种方法
- IOS 图片压缩