<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Dijkstra

        從一個頂點到其余各頂點的最短路徑算法,解決的是有權(quán)圖中最短路徑問題。從起點開始,采用貪心算法策略,每次遍歷到始點距離最近且未被訪問過的頂點,直到終點。該圖中不存在負權(quán)邊。

      c++實現(xiàn):

      #include <vector>
      #include <queue>
      #include <climits>
      #include <iostream>
      
      // assume there is a graphics with direction and side weight
      
      //  weight node
      using SideWeight = std::pair<int,int>;
      
      using Graph = std::vector<std::vector<SideWeight>>;
      
      std::vector<int> dijkstra(const Graph &graph, int start)
      {
          int n = graph.size();
          std::vector<int> dist(n, INT_MAX); // restore the shortest distance
          std::vector<bool> visited(n, false); // remember visit status
          std::priority_queue<SideWeight, std::vector<SideWeight>, std::greater<SideWeight>> pq;
      
          dist[start] = 0;
          pq.push({0, start});
      
          while(!pq.empty())
          {
              auto [d,u]=pq.top();
              pq.pop();
              
              if(visited[u])
              {
                  continue;
              }
              visited[u] = true;
      
              for(auto &[weight ,v] : graph[u])
              {
                  if(dist[v] > dist[u] + weight)
                  {
                      dist[v] = dist[u] + weight;
                      pq.push({dist[v], v});
                  }
              }
          }
          return dist;
      
      }
      
      void printRes(const std::vector<int>& dist, int start)
      {
          std::cout << "From start point: " << start << " 到各節(jié)點的最短距離:\n";
          for(int i=0;i < dist.size();++i)
          {
              if(dist[i] == INT_MAX)
                  std::cout << "   節(jié)點 " << i << " \t connot arrive\n";
              else
              std::cout << "   節(jié)點 " << i << " \t shortest distance: " << dist[i] << std::endl;
          }
      }
      
      void Test()
      {
          Graph graph;
          graph.reserve(5);
          std::vector<SideWeight> v1;
          v1.emplace_back(2,1);
          v1.emplace_back(4,2);
          graph.emplace_back(v1);
      
          std::vector<SideWeight> v2;
          v2.emplace_back(1,2);
          v2.emplace_back(7,3);
          graph.emplace_back(v2);
      
          std::vector<SideWeight> v3;
          v3.emplace_back(3,4);
          graph.emplace_back(v3);
      
          std::vector<SideWeight> v4;
          v4.emplace_back(1,5);
          graph.emplace_back(v4);
      
          std::vector<SideWeight> v5;
          v5.emplace_back(2,3);
          v5.emplace_back(5,5);
          graph.emplace_back(v5);
      
      
          auto dist = dijkstra(graph,0);
          printRes(dist, 0);
      }

       

      posted @ 2025-03-20 11:00  北冥沒有魚  Views(9)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 风骚少妇久久精品在线观看| 亚州中文字幕一区二区| 欧美人与zoxxxx另类| 蜜桃臀无码AV在线观看| 中文字幕亚洲精品第一页| 久久国产精品77777| 国产精品久久久一区二区三区| 亚洲人成网站18禁止无码| 日本韩国一区二区精品| 国产亚洲一级特黄大片在线| 亚洲国产精品人人做人人爱| 天堂v亚洲国产v第一次| 精品福利一区二区三区免费视频 | 国产精品视频一区二区不卡| 最新亚洲人成网站在线影院| 亚洲中文字幕国产精品| 伊人成人在线视频免费| 久久99国产精一区二区三区!| 办公室强奷漂亮少妇视频| 亚洲欧美综合中文| 国产在线精品一区二区夜色| 特级毛片在线大全免费播放| 偷拍一区二区三区在线视频| 久久99国产精品尤物| 国产网友愉拍精品视频手机| 天天做日日做天天添天天欢公交车| 日韩精品亚洲精品第一页| 国外av片免费看一区二区三区| 金华市| 国产一区二区三区我不卡| 免费无码AV一区二区波多野结衣| 久久婷婷五月综合色国产免费观看| 亚洲自拍偷拍福利小视频| 成人精品区| 熟女熟妇乱女乱妇综合网| 性一交一乱一伦| 东京热人妻丝袜无码AV一二三区观 | 福利视频在线播放| 最近中文字幕完整版hd| 秋霞鲁丝片av无码少妇| 九九热这里只有精品在线|