CodeForces
来源:互联网 发布:人工智能和arvr 编辑:程序博客网 时间:2024/05/17 23:52
题目链接:http://codeforces.com/problemset/problem/813/C点击打开链接
用两个book记录两个点到达每个点的时间
然后选择最大的被抓人到达时间比抓人的人到达时间早的点
将抓人的人的到达时间*2就行
#include <iostream>#include <queue>#include <stdio.h>#include <stdlib.h>#include <stack>#include <limits.h>#include <string>#include <string.h>#include <vector>#include <set>#include <map>#include <algorithm>#include <math.h>using namespace std;vector<int >root[222222];int bookalice[222222];int bookbob[222222];int n;int k;queue<int > q;void bfsalice(){ while(!q.empty()) q.pop(); q.push(1); while(!q.empty()) { int mid; mid=q.front(); q.pop(); for(int i=0;i<root[mid].size();i++) { if(!bookalice[root[mid][i]]) { bookalice[root[mid][i]]=bookalice[mid]+1; q.push(root[mid][i]); } } }}void bfsbob(){ while(!q.empty()) q.pop(); q.push(k); while(!q.empty()) { int mid; mid=q.front(); q.pop(); for(int i=0;i<root[mid].size();i++) { if(!bookbob[root[mid][i]]) { bookbob[root[mid][i]]=bookbob[mid]+1; q.push(root[mid][i]); } } }}int main(){ scanf("%d%d",&n,&k); for(int i=1;i<n;i++) { int mid1;int mid2; scanf("%d%d",&mid1,&mid2); root[mid1].push_back(mid2); root[mid2].push_back(mid1); } bookalice[1]=1; bookbob[k]=1; bfsalice(); bfsbob(); int ans=0; for(int i=1;i<=n;i++) { if(bookalice[i]>bookbob[i]) ans=max(ans,bookalice[i]); } if(((ans-1)*2)<=0) cout << "0"; else cout << (ans-1)*2 << endl;}
阅读全文
0 0
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- 【Android日记】Android Studio插件
- RocketMq——顺序消费和事务
- 软件测试思想者
- VSCode快捷键大全(Mac)
- caffe CIFAR-10
- CodeForces
- vs2015常用快捷键总结
- 解决txt文件中数据带有日期类型导入oracle中到不进去的问题
- jsp基本语句用法说明
- UML类图几种关系的总结
- 决策树
- IJKPlayer的封装视频播放器封装,Swift编写。仿今日头条视频播放器。
- VS快捷键
- 将ado.Recordset对象变量中查询结果显示到MSHFlexGrid控件中出现错误解决办法