图的BFS问题


#include<cstdio>
#include<queue>
#include<vector>
#include<memory.h>
#define MAX_N 1010
using namespace std;
int n, l;
vector<int> g[MAX_N];
int vertex_level[MAX_N];
bool visited[MAX_N];
int bfs(int node)
{
memset(vertex_level, 0, MAX_N);
memset(visited, false, MAX_N);
queue<int> trav;
trav.push(node);
int count = 0;
visited[node] = true;
while (!trav.empty() && vertex_level[trav.front()] < l)
{
int f = trav.front();
trav.pop();
for (int i = 0; i < g[f].size(); ++i)
{
if (!visited[g[f][i]])
{
visited[g[f][i]] = true;
vertex_level[g[f][i]] = vertex_level[f] + 1;
trav.push(g[f][i]);
++count;
}
}
}
return count;
}
int main(void)
{
scanf("%d%d", &n, &l);
for (int i = 1; i <= n; ++i)
{
int s;
scanf("%d", &s);
for (int j = 0; j < s; ++j)
{
int t;
scanf("%d", &t);
g[t].push_back(i);
}
}
int s;
scanf("%d", &s);
for (int i = 0; i < s; ++i)
{
int t;
scanf("%d", &t);
printf("%d\n", bfs(t));
}
}
麻烦帮我看一下最后一个测试点的错误在哪里

...全文
相关推荐
OnePieceGraphviz:使用BFS解决“一件”问题并使用Graphviz可视化结果图
OnePieceGraphviz 使用BFS解决“一件”问题的解决方案(无需优化),并使用可视化结果图 前提条件 安装以下内容: JDK 11 玛文 问题 您要查找从一个岛到另一个岛的步骤数,为此,输入将包括相连的城市数(n),在下一行中,城市之间的连接数以及城市之间的查询数城市将会出现。 每个城市都以一个字母开头,该字母不能与其他城市重复。 输出应显示您必须经过的地点才能到达城市。 将提供奖金,用于显示图表和前进的必要路径。 输入范例 8 7 3 特兰西瓦尼亚麦德林麦德林威尼斯麦德林热那亚特兰西瓦尼亚比萨比萨佛罗伦萨威尼斯雅典麦德林波哥大麦德林比萨波哥大佛罗伦萨雅典热那亚 示例输出 麦德林Transilvania比萨波哥大麦德林特兰西瓦尼亚比萨佛罗伦萨雅典威尼斯麦德林热那亚 结果图示例
广度优先搜索算法BFS
广度优先搜索算法—BFS的相关代码,包括循环队列的代码
带BFS和DFS的图的实现
题在压缩文件中,图是用邻接矩阵做的,刚刚接触图的同学可以看一看
算法之BFS与DFS
算法之BFS与DFS
acm程序设计竞赛广度搜索BFS实例
本人自己总结的acm广度搜索实例代码,经典的几个代码程序 只有代码,没有题目,主要是在POJ的。我是在ubuntu下压缩的。


