zoukankan      html  css  js  c++  java
  • 51Nod 1459 迷宫游戏

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 
     5 using namespace std;
     6 const int maxn = 500 + 10;
     7 const int INF = 0x3f3f3f3f;
     8 int pic[maxn][maxn];    //用来存图
     9 int dis[maxn];
    10 int val[maxn], ans[maxn];//ans数组用来记录所走路径经过房间的权值和
    11 bool vis[maxn];
    12 int n, m, sta, en;
    13 
    14 void dij(){
    15     for (int i = 0; i<n; i++)
    16         dis[i] = pic[sta][i];
    17     dis[sta] = 0;
    18     ans[sta] = val[sta];
    19     for (int i = 0; i<n; i++){
    20         int min = INF;
    21         int u = sta;
    22         for (int j = 0; j < n; j++){
    23             if (!vis[j] && dis[j] < min){
    24                 u = j;
    25                 min = dis[j];
    26             }
    27         }
    28         vis[u] = 1;
    29         for (int j = 0; j<n; j++){
    30             if (dis[j]>dis[u] + pic[u][j]){
    31                 dis[j] = dis[u] + pic[u][j];
    32                 ans[j] = ans[u] + val[j];
    33             }
    34             else if (dis[j] == dis[u] + pic[u][j]){
    35                 ans[j] = max(ans[j], ans[u] + val[j]);//若路径花费相等,点权值取较大的。
    36             }
    37         }
    38     }
    39 }
    40 
    41 int main(){
    42     ios::sync_with_stdio(false);
    43 
    44     memset(pic, INF, sizeof(pic));
    45     memset(ans, 0, sizeof(ans));
    46     memset(vis, 0, sizeof(vis));
    47 
    48     cin >> n >> m >> sta >> en;
    49     for (int i = 0; i<n; i++)
    50         cin >> val[i];
    51     for (int i = 0; i<m; i++){
    52         int a, b, len;
    53         cin >> a >> b >> len;
    54         pic[a][b] = pic[b][a] = len;
    55     }
    56     dij();
    57     cout << dis[en] << ' ' << ans[en] << endl;
    58     
    59     return 0;
    60 }
  • 相关阅读:
    glibc源码下载
    指令查找工具
    ubuntu下ldd,查看程序动态库信息
    gdb使用记录
    找到返回地址(1)
    vim自动格式化
    android 注入so
    Mac下安装m2crypto 解决找不到openssl头文件的错误
    Mac下android studio卡,居然这么解决了。。。。
    git忽略文件
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/8666331.html
Copyright © 2011-2022 走看看