51nod1445(最短路)

Posted ygeloutingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod1445(最短路)相关的知识,希望对你有一定的参考价值。

题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445

 

题意: 中文题诶~

 

思路: 可以将每种颜色看作一个节点, 从一种颜色到另一种颜色的代价看作这两个节点之间的距离, 即 x 节点到 y 节点的距离为行号为 x 的行中 0 ~ y - 1 中的 Y 的数目. 然后再跑一遍最短路即可.

 

代码:

技术分享
 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 
 5 const int inf = 1e9;
 6 const int MAXN = 60;
 7 int mp[MAXN][MAXN];
 8 
 9 void floyd(int n){
10     for(int k = 0; k < n; k++){
11         for(int i = 0; i < n; i++){
12             for(int j = 0; j < n; j++){
13                 mp[i][j] = min(mp[i][j], mp[i][k] + mp[k][j]);
14             }
15         }
16     }
17 }
18 
19 int main(void){
20     char ch;
21     int t, n;
22     cin >> t;
23     while(t--){
24         cin >> n;
25         for(int i = 0; i < n; i++){
26             int cnt = 0;
27             for(int j = 0; j < n; j++){
28                 cin >> ch;
29                 if(ch == Y) mp[i][j] = cnt, cnt++;
30                 else mp[i][j] = inf;
31             }
32         }
33         floyd(n);
34         printf("%d\n", mp[0][n - 1] >= inf ? -1 : mp[0][n - 1]);
35     }
36     return 0;
37 }
View Code

 

以上是关于51nod1445(最短路)的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1445 变色DNA,最短路好题

51nod 1445 变色DNA(dij)

51nod_1459 最短路 dijkstra 特调参数

51nod 1683 最短路

51nod 1443 路径和树——最短路生成树

51nod 1443 路径和树(最短路树)