116 - Unidirectional TSP(DP)

原创 2015年07月10日 21:14:31

多段图的最短路问题 。  运用了很多的技巧 :如 记录字典序最小路径 。

细节参见代码:

#include<bits/stdc++.h>
using namespace std;
const int INF = 2000000000;
int m,n,a[15][105],d[15][105],next_[15][105];
int main() {
    while(~scanf("%d%d",&m,&n)) {
        for(int i=0;i<m;i++)
            for(int j=0;j<n;j++) scanf("%d",&a[i][j]);
        int ans = INF,first = 0;
        for(int j=n-1;j>=0;j--) {
            for(int i=0;i<m;i++) {
                if(j == n-1) d[i][j] = a[i][j]; //边界
                else {
                    int rows[3] = {i,i-1,i+1};
                    if(i==0) rows[1] = m-1;
                    if(i==m-1) rows[2] = 0;
                    sort(rows,rows+3);    //重新排序,以便找到字典序最小的
                    d[i][j] = INF;
                    for(int k=0;k<3;k++) {
                        int v = d[rows[k]][j+1] + a[i][j];
                        if(v < d[i][j]) { d[i][j] = v; next_[i][j] = rows[k]; }
                    }
                }
                if(j==0&&d[i][j]<ans) { ans = d[i][j]; first = i; } //在最后一列确定最大值以及第一列的行数答案
            }
        }
        printf("%d",first+1);
        for(int i=next_[first][0],j=1;j<n;i=next_[i][j],j++) printf(" %d",i+1);
        printf("\n%d\n",ans);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

116 - Unidirectional TSP 【DP】

题目大意 样例 input output 解释 思路 代码 Hit题目大意传送门 样例input5 6 3 4 1 2 8 6 6 1 8 2 7 4 5 9 3 ...

UVa 116 Unidirectional TSP(DP)

题意  一个n*m的环形矩阵(第一行和最后一行是相邻的)  从第一列任意位置出发  只能往右上,右,右下3个方向走  求走到第m列经过的的最小数字和 基础DP  横着的数塔问题 #include ...
  • acvay
  • acvay
  • 2015-02-06 22:03
  • 660

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

uva 116 Unidirectional TSP (DP)

uva 116 Unidirectional TSPBackgroundProblems that require minimum paths through some domain appear i...

UVa 116 Unidirectional TSP(DP)

ji

UVa 116:Unidirectional TSP(DP)

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=847&page=show_pr...

UVa 116 - Unidirectional TSP(dp)

题意:找最短路,知道三种行走方式,给出图,求出一条从左边到右边的最短路,且字典序最小。 用dp记忆化搜索的思想来考虑是思路很清晰的,但是困难在如何求出字典序最小的路。 因为左边到右边的字典序最小就...

DP--UVA - 116 Unidirectional TSP

Description Background Problems that require minimum paths through some domain appear in m...

UVa 116 Unidirectional TSP (DP)

116 - Unidirectional TSP Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_...

UVA 116 - Unidirectional TSP

简单的dp问题,很直观,不多说。

uva 116 Unidirectional TSP

题目: G - Unidirectional TSP Time Limit:3000MS     Memory Limit:0KB     64b...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)