Educational Codeforces Round 78 (Rated for Div. 2)E(构造,DFS)
2024-09-06 04:06:22
DFS,把和当前结点相连的点全都括在当前结点左右区间里,它们的左端点依次++,然后对这些结点进行DFS,优先对左端点更大的进行DFS,这样它右端点会先括起来,和它同层的结点(后DFS的那些)的区间会把它括起来,这样它们就不会相交了。
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int cnt=;
vector<int>v[];
int l[],r[];
void dfs(int x,int fa){
for(int i=;i<v[x].size();++i)
if(v[x][i]!=fa)
l[v[x][i]]=++cnt;
r[x]=++cnt;
for(int i=v[x].size()-;i>=;--i)
if(v[x][i]!=fa)
dfs(v[x][i],x);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
for(int i=;i<n;++i){
int x,y;
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(,);
l[]=;
for(int i=;i<=n;++i)
cout<<l[i]<<" "<<r[i]<<"\n";
return ;
}
最新文章
- BZOJ2498 : Xavier is Learning to Count
- 谨慎DateTime.Now在EF的query中的使用
- String的length()和Array的length
- poj1062昂贵的聘礼(Dijkstra**)
- XMPP学习&mdash;&mdash;2、用户登录
- python(五)文件操作
- appserv在哪修改服务器名
- Hash Killer I II
- Insecure default in Elasticsearch enables remote code execution
- Oracle之PLSQL
- 通过ArcMap发布服务
- spark-shell的Scala的一些方法详解
- 密码疑云 (3)——详解RSA的加密与解密
- C++的正则
- Codeforces Round #485 (Div. 2)
- [T-ARA][떠나지마][不要离开]
- Python Shell 中敲击方向键显示「^[[C^[[D],问题解决
- JAVA框架Struts2 数据封装
- 4710: [Jsoi2011]分特产
- 实验三 敏捷开发和XP实验