OSDN Git Service

Update euler.md
author夜轮_NachtgeistW <35161925+NachtgeistW@users.noreply.github.com>
Sun, 27 Sep 2020 07:24:02 +0000 (15:24 +0800)
committerGitHub <noreply@github.com>
Sun, 27 Sep 2020 07:24:02 +0000 (15:24 +0800)
docs/graph/euler.md

index 1d52627..a6cf128 100644 (file)
@@ -134,17 +134,16 @@ $$
       int to;
       bool exists;
       int revref;
-    ```
-
+    
       bool operator<(const edge& b) const { return to < b.to; }
     };
-
+    
     vector<edge> beg[505];
     int cnt[505];
-
+    
     const int dn = 500;
     stack<int> ans;
-
+    
     void Hierholzer(int x) {  // 关键函数
       for (int& i = cnt[x]; i < (int)beg[x].size();) {
         if (beg[x][i].exists) {
@@ -159,15 +158,15 @@ $$
       }
       ans.push(x);
     }
-
+    
     int deg[505];
     int reftop[505];
-
+    
     int main() {
       for (int i = 1; i <= dn; ++i) {
         beg[i].reserve(1050);  // vector 用 reserve 避免动态分配空间,加快速度
       }
-
+      
       int m;
       scanf("%d", &m);
       for (int i = 1; i <= m; ++i) {
@@ -178,19 +177,19 @@ $$
         ++deg[a];
         ++deg[b];
       }
-
+      
       for (int i = 1; i <= dn; ++i) {
         if (!beg[i].empty()) {
           sort(beg[i].begin(), beg[i].end());  // 为了要按字典序贪心,必须排序
         }
       }
-
+      
       for (int i = 1; i <= dn; ++i) {
         for (int j = 0; j < (int)beg[i].size(); ++j) {
           beg[i][j].revref = reftop[beg[i][j].to]++;
         }
       }
-
+      
       int bv = 0;
       for (int i = 1; i <= dn; ++i) {
         if (!deg[bv] && deg[i]) {
@@ -199,9 +198,9 @@ $$
           bv = i;
         }
       }
-
+      
       Hierholzer(bv);
-
+      
       while (!ans.empty()) {
         printf("%d\n", ans.top());
         ans.pop();