Codeforces-813c双bfs
来源:互联网 发布:手机版淘宝类目的修改 编辑:程序博客网 时间:2024/05/20 05:54
题意: A和B在玩一个游戏,他们在一颗树上,A在根节点1上,B在节点k上,现在A要去追B,A要尽可能快的去追到B,B要尽可能的去躲避A的追捕,刚开始B要先走,然后A走。每走一步的时间是1秒。于是问你A追上B的时间题解: 因为是B先走,B应该尽可能的先树的深处走,而且一定是B先到达后,待在那,然后A才到达,追到B。于是我们做两次BFS,记录从B出发的到各个节点的时间和从A出发到达各各节点的时间。终点就是离A最远的那个点,且B要比A先到达那个节点.答案就是 2*A到达终点的时间。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>using namespace std;const int maxn = 2e5+10;vector<int> way[maxn];bool vis[maxn];int da[maxn],db[maxn];int n,B;void init(){ for(int i=0;i<maxn;i++) way[i].clear();}void add(int u,int v){ way[u].push_back(v); way[v].push_back(u);}void BFS(int pos,int *dist){ memset(vis,0,sizeof(vis)); memset(dist,0,sizeof(dist)); vis[pos] = true; dist[pos] = 0; queue<int> qu; qu.push(pos); while(!qu.empty()) { int v = qu.front();qu.pop(); for(int i=0;i<way[v].size();i++) { int to = way[v][i]; if(vis[to]) continue; vis[to] = true; dist[to] = dist[v] + 1; qu.push(to); } }}int main(){ while(~scanf("%d%d",&n,&B)) { init(); int u,v; for(int i=1;i<n;i++) { scanf("%d%d",&u,&v); add(u,v); } BFS(1,da); BFS(B,db); int ans = 0; for(int i=2;i<=n;i++){ if(da[i] > db[i]) ans = max(ans,da[i]); } cout<<ans * 2 <<endl; } return 0;}
阅读全文
0 0
- Codeforces-813c双bfs
- codeforces 590C(bfs)
- CodeForces 116C 【BFS】
- CodeForces-540C//Codeforces Round #301 (Div. 2)C BFS
- 【Codeforces】C. Ice Cave(bfs)
- Codeforces 590C Three States(bfs)
- CodeForces 540C Ice Cave (BFS)
- CodeForces 540 C Ice Cave (BFS)
- codeforces 616C The Labyrinth(bfs)
- codeforces 540C Ice Cave【BFS】
- Codeforces 540C Ice Cave (BFS)
- CodeForces 616C:The Labyrinth(BFS)
- Codeforces-540C 广搜BFS
- Codeforces 730 C Bulmart [bfs+贪心]
- Codeforces Round #327 & problem - 590C - C. Three States - BFS
- Codeforces Beta Round #35 (Div. 2) C (BFS~水~)
- Codeforces 242C King‘s Path(BFS+STL)
- CodeForces 295C - Greg and Friends BFS找最短路径
- 浏览器,服务器,浏览器和服务器之间的通信协议
- AES加密
- Android 端“被挤下线”功能的实现
- CDN/智能DNS原理和应用
- 计划任务crontab的一些实例
- Codeforces-813c双bfs
- ContentProvider介绍
- Fresco的简单应用
- 一组数据中1到9中间的数出现的次数
- vue v-for 循环复选框-默认勾选第一个的实现方法
- 读
- 霍夫变换直观原理
- ios11崩溃
- 第7章 添加Web界面