解题思路:
注意事项:
参考代码:、
#include<stdio.h> #include<string.h> #include<iostream> #include<queue> using namespace std; typedef struct{ int v; int step; }node; vector <int> g[100005]; int n, m, s, eat, ans; int visit[100005]; void init(); void read(); void bfs(int s); int main(){ scanf("%d %d %d", &n, &m, &s); scanf("%d", &eat); init(); read(); memset(visit, 0, sizeof(visit)); bfs(s); printf("%d\n", ans + eat); return 0; } void bfs(int s){ int i, cur; queue <node> Q; node p, q; p.v = s; p.step = 1; visit[s] = 1; Q.push(p); while(!Q.empty()){ q = Q.front(); Q.pop(); cur = q.v; for(i = 0; i < g[cur].size(); i++){ p.v = g[cur][i]; if(!visit[p.v]){ p.step = q.step + 1; Q.push(p); visit[p.v] = 1; } } ans = q.step; } } void read(){ int i, j, k; for(i = 0; i < m; i++){ scanf("%d %d", &j, &k); g[j].push_back(k); g[k].push_back(j); } } void init(){ int i; for(i = 1; i <= n; i++) g[i].clear(); }
0.0分
1 人评分
简单的a+b (C语言代码)浏览:783 |
打水问题 (C语言代码)浏览:1148 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
K-进制数 (C语言描述,蓝桥杯)浏览:955 |
A+B for Input-Output Practice (C语言代码)浏览:505 |
星期判断机 (C语言代码)浏览:892 |
循环入门练习5 (C语言代码)浏览:907 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:612 |
判定字符位置 (C语言代码)浏览:849 |
敲七 (C++代码)浏览:1119 |