跟踪_纪中4805_bfs
来源:互联网 发布:pop3使用的端口号 编辑:程序博客网 时间:2024/05/17 06:04
Description
Input
Output
Data Constraint
Analysis
不难发现,石神和两个陌生人的行动方式一定是最优策略
转换一下思路,考虑对于每个点,石神是否能比两个陌生人先到达
计算石神到达每个点的最早时间,以及两个陌生人到达每个点的最早时间
然后对于每个点依次判断是不是可能是最终被追上的位置即可,最迟时间也可以方便求得
这里膜一下梓豪
Code
#include <stdio.h>#include <queue>#define inf 0x7fffffff#define maxn 400001using namespace std;struct edge{int y,next;}e[maxn+1];int dis[maxn+1],ls[maxn+1],maxE=0,ans=0;int step[3]={0,2,1};void add(int x,int y){ e[++maxE]=(edge){y,ls[x]}; ls[x]=maxE;}int max(int x,int y){ return x>y?x:y;}void bfs(int st1,int st2){ queue<int>q; for (int i=0;i<=maxn;i++) dis[i]=inf; q.push(st1);q.push(2); q.push(st2);q.push(2); dis[st1]=dis[st2]=0; while (!q.empty()) { int now=q.front();q.pop(); int tmp=q.front();q.pop(); for (int i=ls[now];i;i=e[i].next) if (dis[now]+tmp<dis[e[i].y]) { dis[e[i].y]=dis[now]+tmp; q.push(e[i].y); q.push(step[tmp]); } }}void find(int st){ queue<int>q; q.push(st); q.push(-2); while (!q.empty()) { int now=q.front();q.pop(); int d=q.front();q.pop(); ans=max(dis[now],ans); for (int i=ls[now];i;i=e[i].next) if (d+3<dis[e[i].y]&&d+3<dis[now]) { q.push(e[i].y); q.push(d+3); } }}int main(){ freopen("track.in","r",stdin); freopen("track.out","w",stdout); int n,s,a,b; scanf("%d%d%d%d",&n,&s,&a,&b); for (int i=1;i<n;i++) { int x,y; scanf("%d%d",&x,&y); add(x,y); add(y,x); } bfs(a,b); find(s); printf("%d\n",ans); return 0;}
0 0
- 跟踪_纪中4805_bfs
- 洪水_纪中1235_bfs
- 回家_纪中1445_bfs+二分
- 位图_纪中3076_bfs
- 数字生成游戏_纪中2570_bfs
- Number_纪中1781_bfs+hash
- codevs 1215_迷宫_bfs
- codevs 2919_选择题_bfs
- SSL 2352_面积_bfs
- jzoj 3450_山峰_bfs
- 洛谷 1162_填涂颜色_bfs
- 洛谷 1443_马的遍历_bfs
- 封锁阳光大学_洛谷1330_bfs
- codevs 2806_红与黑_bfs
- codevs 1099_字串变换_bfs
- codevs 1026_逃跑的拉尔夫_bfs
- codevs 1225_八数码难题_bfs+hash
- 目标跟踪学习笔记_(opencv中kalman点跟踪例子)
- web项目中各种路径的获取
- 287_计算并设置ListView的高度
- Mobicom 2016
- 无重复全排列
- 我的第一篇博客
- 跟踪_纪中4805_bfs
- 分布式缓存的一致性Hash算法
- 288_自定义View测量模式
- 我是男友的R小帮手
- HDU 2159 FATE by Assassin
- redis 安装 随笔
- SDUTACM 数据结构实验之链表九:双向链表
- hihocoder1385 A Simple Job JAVA String split 字符串切割
- 初识Linux内核-和CMOS打电话