记录详情

Accepted


  
# 状态 耗时 内存占用
#1 Accepted 3ms 2.34 MiB
#2 Accepted 8ms 2.348 MiB
#3 Accepted 30ms 6.492 MiB
#4 Accepted 288ms 9.0 MiB

代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;

const int N = 100005, M = 1000005;
int n, m;
int ecnt, adj[N], nxt[M], go[M], dis[N];
bool vis[N];
queue <int> que;

void add(int u, int v){
    go[++ecnt] = v;
    nxt[ecnt] = adj[u];
    adj[u] = ecnt;
}
void bfs(){
    vis[1] = 1;
    que.push(1);
    while(!que.empty()){
	int u = que.front(), v;
	que.pop();
	for(int e = adj[u]; e; e = nxt[e])
	    if(!vis[v = go[e]])
		dis[v] = dis[u] + 1, vis[v] = 1, que.push(v);
    }
}

int main(){

    scanf("%d%d", &n, &m);
    for(int i = 1; i <= m; i++){
	int u, v;
	scanf("%d%d", &u, &v);
	add(u, v);
    }
    bfs();
    printf("%d\n", dis[n]);

    return 0;
}

信息

递交者
类型
递交
题目
链式前向星/BFS 板题
题目数据
下载
语言
C++
递交时间
2017-11-19 10:34:08
评测时间
2017-11-19 13:46:16
评测机
分数
100
总耗时
331ms
峰值内存
9.0 MiB