(事業部の定格。2)教育Codeforcesラウンド78 E(构造、DFS)

DFS、及びセクションにおける現在のノードに含まれるすべての周りの電流に接続された接続点は、左端点は、その+を順次、次いでDFSにこれらのノードを行う、DFSの優先順位は、エンドポイントが、その結果、右端点大きい左これは、最初に囲まれます、そして、彼らが交差しないように、層との接合部分(DFS後のもの)は、それを囲みます。

1  の#define HAVE_STRUCT_TIMESPEC
 2の#include <ビット/ STDC ++ H>
 3  使用して 名前空間STDを、
4  INT CNT = 1 5ベクター< INT > V [ 500007 ]。
6  INTを L [ 500007 ]、R [ 500007 ]。
7つの ボイド DFS(int型のx、int型FA){
 8      のためのINT iが= 0 ; I <V [x]は.size(); ++ i)が
 9          であれば(!V [x]は[I] = FA)
 10             L [V [x]は[I] = ++ CNT。
11      R [X] = ++ CNT。
12      のためのINTは iがV [X] .size()= - 1 ; I> = 0 ; - I)
 13          であれば(!V [x]は[I] = FA)
 14の             DFS(V [X] [I] 、バツ);
15  }
 16  INT メイン(){
 17の      IOS :: sync_with_stdio()。
18      cin.tie(NULL)。
19      cout.tie(NULL)。
20      INT N。
21      CIN >> N。
22      のためのint型 I =1、I <N; ++ I){
 23          のint X、Y。
24          CIN >> X >> Y。
25          V [X] .push_back(Y)。
26          V [Y] .push_back(X)。
27      }
 28      DFS(10 );
29      L [ 1 ] = 1 30      のためにINT iは= 1 ; iが<= N; ++ i)が
 31          COUT << L [I] << "  " << R [I] << " \ n " 32      リターン 0 33 }

おすすめ

転載: www.cnblogs.com/ldudxy/p/12193532.html