813C The Tag Game --- DFS

 追逐游戏啊,🚬 //沧桑脸

下回把dfs,bfs,dijkstra都写一遍~

//DFS和BFS区别

(1)dfs学了这篇:https://blog.csdn.net/mengxiang000000/article/details/72901402

但是。。。我没有理解遇到两人到某点距离一样,就更新答案这句,而且,不加这句也ac了,搞不明白<(_ _)>

 1 #include<bits/stdc++.h>
 2 #define mem(a) memset(a,0,sizeof(a))
 3 #define ll long long
 4 #define inf 0x3f3f3f3f
 5 const int N=2e5+5;
 6 const int M=1e3+10;
 7 const ll lim=1e14+5;
 8 using namespace std;
 9 int ans,dis[2][N];
10 vector<int>ve[N];
11 void dfs(int now,int from,int judge,int sum)
12 {
13    dis[judge][now]=sum;
14    if(judge==1&&sum<dis[0][now])
15    {
16        ans=max(ans,dis[0][now]*2);//
17    }
18    for(int i=0;i<ve[now].size();i++)
19    {
20         int now1=ve[now][i];
21         if(now1==from) continue;
22         dfs(now1,now,judge,sum+1);
23    }
24 }
25 int main()
26 {
27     int n,x,a,b;
28     scanf("%d%d",&n,&x);
29     for(int i=0;i<n-1;i++)
30     {
31         scanf("%d%d",&a,&b);
32         ve[a].push_back(b);
33         ve[b].push_back(a);
34     }
35     dfs(1,0,0,0);
36     dfs(x,0,1,0);
37     printf("%d\n",ans);
38     return 0;
39 }
View Code

 

posted @ 2019-07-11 14:06  XXrl  阅读(167)  评论(0编辑  收藏  举报