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

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

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

      Chri_K

      鏈式前向星
      #include<bits/stdc++.h>
      using namespace std;
      const int maxn = 1005;//點數最大值
      int n, m, cnt;//n個點,m條邊
      struct Edge
      {
          int to, w, next;//終點,邊權,同起點的上一條邊的編號
      }edge[maxn];//邊集
      int head[maxn];//head[i],表示以i為起點的第一條邊在邊集數組的位置(編號)
      void init()//初始化
      {
          for (int i = 0; i <= n; i++) head[i] = -1;
          cnt = 0;
      }
      void add_edge(int u, int v, int w)//加邊,u起點,v終點,w邊權
      {
          edge[cnt].to = v; //終點
          edge[cnt].w = w; //權值
          edge[cnt].next = head[u];//以u為起點上一條邊的編號,也就是與這個邊起點相同的上一條邊的編號
          head[u] = cnt++;//更新以u為起點上一條邊的編號
      }
      int main()
      {
          cin >> n >> m;
          int u, v, w;
          init();//初始化
          for (int i = 1; i <= m; i++)//輸入m條邊
          {
              cin >> u >> v >> w;
              add_edge(u, v, w);//加邊
              /*
              加雙向邊
              add_edge(u, v, w);
              add_edge(v, u, w);
              */
          }
          for (int i = 1; i <= n; i++)//n個起點
          {
              cout << i << endl;
              for (int j = head[i]; j != -1; j = edge[j].next)//遍歷以i為起點的邊
              {
                  cout << i << " " << edge[j].to << " " << edge[j].w << endl;
              }
              cout << endl;
          }
          return 0;
      }
      /*
      5 7
      1 2 1
      2 3 2
      3 4 3
      1 3 4
      4 1 5
      1 5 6
      4 5 7
      */

      對于1 2 1這條邊:edge[0].to = 2;     edge[0].next = -1;      head[1] = 0;

      對于2 3 2這條邊:edge[1].to = 3;     edge[1].next = -1;      head[2] = 1;

      對于3 4 3這條邊:edge[2].to = 4;     edge[2],next = -1;      head[3] = 2;

      對于1 3 4這條邊:edge[3].to = 3;     edge[3].next = 0;       head[1] = 3;

      對于4 1 5這條邊:edge[4].to = 1;     edge[4].next = -1;      head[4] = 4;

      對于1 5 6這條邊:edge[5].to = 5;     edge[5].next = 3;       head[1] = 5;

      對于4 5 7這條邊:edge[6].to = 5;     edge[6].next = 4;       head[4] = 6;

      第一層for循環是找每一個點,依次遍歷以【1,n】為起點的邊的集合。第二層for循環是遍歷以 i 為起點的所有邊,k首先等于head[ i ],注意head[ i ]中存的是以 i 為起點的最后一條邊的編號。然后通過edge[ j ].next來找下一條邊的編號。我們初始化head為-1,所以找到你最后一個邊(也就是以 i 為起點的第一條邊)時,你的edge[ j ].next為 -1做為終止條件。

      posted on 2020-11-02 08:49  Chri_K  閱讀(67)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 少妇宾馆粉嫩10p| 日韩av中文字幕有码| 国产粉嫩美女一区二区三| 欧美福利在线| 日本无码欧美一区精品久久| 中文字幕国产精品日韩| 国产69精品久久久久99尤物| 亚洲sm另类一区二区三区| 国产色无码专区在线观看| 亚洲精品第一页中文字幕| 色天天天综合网色天天| 亚洲欧美综合人成在线| 亚洲中文字幕国产综合| 定结县| 久久青青草原亚洲AV无码麻豆| 国产精品老年自拍视频| 国产高清国产精品国产专区| 亚洲AV午夜成人无码电影| 国产久免费热视频在线观看| 国产色一区二区三区四区| 国产区成人精品视频| 亚洲AV旡码高清在线观看| 永寿县| 亚洲精品入口一区二区乱| 亚洲国产午夜精品福利| 99re6这里有精品热视频| 高清国产一区二区无遮挡| 插入中文字幕在线一区二区三区| 亚洲中文字幕综合小综合| 国产清纯在线一区二区| 婷婷四房播播| 99久久无码一区人妻a黑| 99精品视频九九精品视频| 不卡乱辈伦在线看中文字幕| a级黑人大硬长爽猛出猛进| 午夜福利精品一区二区三区| 国产精品午夜福利视频234区 | 视频一区二区三区四区五区| 国产精品午夜福利91| 国精品无码一区二区三区在线看| 弥勒县|