CODEVS 3731 寻找道路
来源:互联网 发布:linux修改ssh端口号 编辑:程序博客网 时间:2024/06/10 12:32
【题意】
点击打开链接
【解题方法】反向跑bfs把可以连通的点标,然后正向跑BFS。
【AC 代码】
#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn=200005;struct edge{int to,next;}E[maxn*2];int head[10005],tot;int n,m,S,T;int u[maxn],v[maxn];int dis[maxn];bool vis[10005];int q[10005];void init(){ tot=0; memset(head,0,sizeof(head));}void addedge(int u,int v){ E[++tot].to=v,E[tot].next=head[u],head[u]=tot;}bool check(int u){ for(int i=head[u]; i; i=E[i].next){ int v=E[i].to; if(!vis[v]) return false; } return true;}void bfs1(){ int fron=0,tail=1; q[0]=T;vis[T]=1; while(fron!=tail) { int now=q[fron];fron++; for(int i=head[now]; i; i=E[i].next){ int v=E[i].to; if(!vis[v]){ vis[v]=1; q[tail++]=v; } } }}bool bfs2(){ int fron=0,tail=1; q[0]=S; dis[S]=0; while(fron!=tail) { int now=q[fron];fron++; if(!check(now)) continue; for(int i=head[now]; i; i=E[i].next){ if(dis[E[i].to]==-1){ dis[E[i].to]=dis[now]+1; q[tail++]=E[i].to; if(E[i].to==T){ printf("%d\n",dis[T]); return 1; } } } } return 0;}int main(){ scanf("%d%d",&n,&m); init(); for(int i=1; i<=m; i++){ scanf("%d%d",&u[i],&v[i]); if(u[i]!=v[i]) addedge(v[i],u[i]); } scanf("%d%d",&S,&T); bfs1(); tot=0; memset(head,0,sizeof(head)); memset(dis,-1,sizeof(dis)); for(int i=1; i<=m; i++){ if(u[i]!=v[i]) addedge(u[i],v[i]); } if(!vis[S]) {puts("-1"); return 0;} if(!bfs2()) puts("-1"); return 0;}
0 0
- CODEVS 3731 寻找道路
- codevs 3731 寻找道路
- codevs 3731 寻找道路
- 寻找道路(codevs 3731)题解
- CODEVS 3731寻找道路 (重修版)
- codevs 寻找道路
- 【Codevs】3731 寻找道路 --2014年NOIP全国联赛提高组
- Codevs 3731 寻找道路 2014年 NOIP全国联赛提高组
- 3731 寻找道路
- 寻找道路
- 寻找道路
- 寻找道路
- 寻找不同的道路
- Noip2014寻找道路题解
- NOIP2014 寻找道路
- [NOIP2014]寻找道路
- Vijos1909 寻找道路
- NOIP2014寻找道路
- git
- 从Aactivity跳转到Bactivity的指定的fragment
- 集合详解(一)----Collection和Map接口
- python核心编程第十章练习
- Android之Handler用法总结
- CODEVS 3731 寻找道路
- 以Windows系统服务得到活动用户的用户名、UserProfile与环境变量
- 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)..
- Mysql锁的优化
- 开始记日记
- 情感分析
- MySQL数据库学习笔记(一)----MySQL 5.6.21的安装和配置(setup版)
- SQLite的基本知识
- lua 字符串处理