zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 78 (Rated for Div. 2)E(构造,DFS)

    DFS,把和当前结点相连的点全都括在当前结点左右区间里,它们的左端点依次++,然后对这些结点进行DFS,优先对左端点更大的进行DFS,这样它右端点会先括起来,和它同层的结点(后DFS的那些)的区间会把它括起来,这样它们就不会相交了。

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int cnt=1;
     5 vector<int>v[500007];
     6 int l[500007],r[500007];
     7 void dfs(int x,int fa){
     8     for(int i=0;i<v[x].size();++i)
     9         if(v[x][i]!=fa)
    10             l[v[x][i]]=++cnt;
    11     r[x]=++cnt;
    12     for(int i=v[x].size()-1;i>=0;--i)
    13         if(v[x][i]!=fa)
    14             dfs(v[x][i],x);
    15 }
    16 int main(){
    17     ios::sync_with_stdio(false);
    18     cin.tie(NULL);
    19     cout.tie(NULL);
    20     int n;
    21     cin>>n;
    22     for(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(1,0);
    29     l[1]=1;
    30     for(int i=1;i<=n;++i)
    31         cout<<l[i]<<" "<<r[i]<<"
    ";
    32     return 0;
    33 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    springboot访问redis序列化问题
    观察者模式在源码中的使用
    抽象工厂模式在源码中的使用
    工厂方法模式在源码中的应用
    策略模式的应用
    springcloud实现限流
    Elasticsearch
    java8新特性(二)StreamApi
    thinkpaidE450 win10 进入bios
    restframe_work2
  • 原文地址:https://www.cnblogs.com/ldudxy/p/12193532.html
Copyright © 2011-2022 走看看