zoukankan      html  css  js  c++  java
  • BZOJ 1624 [Usaco2008 Open] Clear And Present Danger 寻宝之路:floyd

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1624

    题意:

      农夫约翰正驾驶一条小艇在牛勒比海上航行。

      海上有N(1≤N≤100)个岛屿,用1到N编号。

      约翰从1号小岛出发,最后到达N号小岛。

      一张藏宝图上说,如果他的路程上经过的小岛依次出现了Ai,A2,…,AM(2≤M≤10000)这样的序列(不一定相邻),那他最终就能找到古老的宝藏。

      但是,由于牛勒比海有海盗出没.约翰知道任意两个岛屿之间的航线上海盗出没的概率,他用一个危险指数Dij(0≤Dij≤100000)来描述。

      他希望他的寻宝活动经过的航线危险指数之和最小。

      那么,在找到宝藏的前提下,这个最小的危险指数是多少呢?

    题解:

      floyd.

      然后求从1到a[1]、a[1]到a[2]...a[m]到n的dis之和。

    AC Code:

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #define MAX_N 105
     5 #define MAX_M 10005
     6 
     7 using namespace std;
     8 
     9 int n,m;
    10 int ans=0;
    11 int a[MAX_M];
    12 int dis[MAX_N][MAX_N];
    13 
    14 void read()
    15 {
    16     cin>>n>>m;
    17     a[0]=1;
    18     a[m+1]=n;
    19     for(int i=1;i<=m;i++)
    20     {
    21         cin>>a[i];
    22     }
    23     for(int i=1;i<=n;i++)
    24     {
    25         for(int j=1;j<=n;j++)
    26         {
    27             cin>>dis[i][j];
    28         }
    29     }
    30 }
    31 
    32 void floyd()
    33 {
    34     for(int k=1;k<=n;k++)
    35     {
    36         for(int i=1;i<=n;i++)
    37         {
    38             for(int j=1;j<=n;j++)
    39             {
    40                 if(i!=j && j!=k && i!=k)
    41                 {
    42                     dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
    43                 }
    44             }
    45         }
    46     }
    47 }
    48 
    49 void solve()
    50 {
    51     floyd();
    52     for(int i=0;i<=m;i++)
    53     {
    54         ans+=dis[a[i]][a[i+1]];
    55     }
    56 }
    57 
    58 void print()
    59 {
    60     cout<<ans<<endl;
    61 }
    62 
    63 int main()
    64 {
    65     read();
    66     solve();
    67     print();
    68 }
  • 相关阅读:
    python05-循环
    python03-列表
    python03 input
    python02-灭霸的选择
    python学习小记01--萌新的进化
    Linux—-软件安装
    linux-认识与分析日志
    Esxi遇到问题汇总。
    xx
    Pramp mock interview (4th practice): Matrix Spiral Print
  • 原文地址:https://www.cnblogs.com/Leohh/p/7613187.html
Copyright © 2011-2022 走看看