POJ 2457 BFS
来源:互联网 发布:nx车铣复合加工编程书 编辑:程序博客网 时间:2024/06/05 06:10
题意:
说人话:
从A到B连边 找从1到k的最短路 并输出路径(随便一条即可 )
如果不能到达 输出-1
思路:
搜
//By SiriusRen#include <queue>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 100500int n,k,xx,yy,first[N],next[N],w[N],v[N],tot,vis[N],dis[N],zhuan[N];void add(int x,int y){v[tot]=y,next[tot]=first[x],first[x]=tot++;}void bfs(){ queue<int>q;q.push(1); memset(dis,0x3f,sizeof(dis));dis[1]=0; while(!q.empty()){ int x=q.front();q.pop(); if(vis[x])continue; vis[x]=1; for(int i=first[x];~i;i=next[i]) if(!vis[v[i]]&&dis[v[i]]>dis[x]+1){ zhuan[v[i]]=x; dis[v[i]]=dis[x]+1; q.push(v[i]); } }}void dfs(int x){ if(!x)return; dfs(zhuan[x]); printf("%d\n",x);}int main(){ memset(first,-1,sizeof(first)); scanf("%d%df",&n,&k); for(int i=1;i<=n;i++)scanf("%d%d",&xx,&yy),add(xx,yy); bfs(); if(dis[k]<=0x3ffffff)printf("%d\n",dis[k]+1),dfs(k); else puts("-1");}
0 0
- POJ 2457 BFS
- 【POJ】2457 Part Acquisition bfs
- [BFS] poj
- poj 3626 简单bfs
- POJ 3278 : 经典BFS
- poj 3126 简单bfs
- poj 3278 简单bfs
- poj 2243 bfs
- poj 1856 bfs
- POJ 3697 BFS暴力
- POJ 2251 BFS
- poj 3278 bfs
- POJ 3414 Pots BFS
- poj 3278、、、BFS
- poj--2243 BFS
- POJ 1465 Multiple BFS
- bfs poj 2157 maze
- poj 2251 三维BFS
- C++ vector的说明与应用上
- Windbg 基本调试入门
- 顺序表插入详解
- 数据结构——队列的链式存储结构以及实现
- Android 录音和摄像头权限适配
- POJ 2457 BFS
- 【codeforces 27 E】【反素数】【给一个数n,求一个最小的正整数,使得它的因子个数为n】
- 面试——读写锁ReadWriteLock
- 【NOIP2016提高A组模拟】配对游戏
- js 选择器兼容
- KoaHub.js是基于 Koa.js 平台的 Node.js web 快速开发框架
- Go语言安装与liteIDE配置
- [C#]DataTable和DataSet有什么区别
- python中os.system调用exe文件问题