本文共 578 字,大约阅读时间需要 1 分钟。
思路:
这题主要是题目比较难看懂,看懂之后就比较容易了。
f[i][j] 表示第i天,到城市j的最少总花费
那么可以得到状态转移: i=0, f[1][j] = cost[1][j][0]; i>0, f[i][j] = min{f[i][j], f[i-1][k]+cost[k][j], k!=j}代码:
#include#include #include #include #include #include using namespace std;typedef long long int64;const int INF = 0x3f3f3f3f;const int MAXN = 1010;int n, m;int f[MAXN][12], cost[12][12][32], d[12][12];int main(){ int cas = 1; while(~scanf("%d%d", &n, &m) && n+m){ for(int i=1; i<=n; ++i){ for(int j=1; j<=n; ++j)if(i!=j){ scanf("%d", &d[i][j]); for(int k=0; k
转载地址:http://avzni.baihongyu.com/