Задача на поиск в ширину (bfs)

283
08 ноября 2017, 02:39

Решаю задачу на BFS. На некоторых тестах неправильный ответ.

Суть задачи:

Вводится N – число вершин, матрица смежности, и потом точки a и b. Найти кратчайший путь от a до b.

Помогите найти ошибку в моем коде:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <stack>
#include <queue>
using namespace std;
typedef int                     _type;
typedef vector<_type>           v_t;
typedef vector<v_t>             v2_t;
typedef vector<bool>            v_b;
typedef vector<pair<int, int>>  v_p;
int n, a, b;
v_b used;
v2_t v;
stack<int> path;
queue<int> q;
void bfs()
{
    q.emplace(a);
    used[a] = true;
    while (!q.empty())
    {
        int x(q.front());
        q.pop();
        for (int i(0); i<n; ++i) 
        {
            if (!used[i] && v[x][i])
            {
                used[i] = true;
                q.emplace(i);
                path.emplace(i);
                if (v[i][b])
                    return;
            }
        }
    }
}
int main()
{
    cin >> n;
    v.resize(n, v_t(n));
    used.resize(n, false);
    for (auto &v1 : v)
        for (int &n1 : v1)
            cin >> n1;
    cin >> a >> b;
    --a; --b;
    bfs();
    if (!path.size())
    {       
        if (!v[a][b])
        {
            cout << -1;
            return 0;
        }
    }
    else
        cout << path.size() + 1 << endl;
    cout << a + 1 << ' ';
    while (!path.empty())
    {
        cout << path.top() + 1 << ' ';
        path.pop();
    }
    cout << b + 1 << endl;
    system("pause");
    return 0;
}
READ ALSO
Выдаёт - неправильно завершена декларация,помогите найти ошибку

Выдаёт - неправильно завершена декларация,помогите найти ошибку

Вот, исправил некоторые ошибки в Вашем коде, компилируется, выполняется

198
Метод касательных(Ньютона) [требует правки]

Метод касательных(Ньютона) [требует правки]

Не могу понять как реализовать этот метод на с++ Нашел много примеров программ но они полностью не подходят, помогите плизВот пример который...

392
C++ чтение из файла

C++ чтение из файла

CLion ругается на fstreamНе могу понять почему

246
Задать цвет с помощью R, G, B составляющих

Задать цвет с помощью R, G, B составляющих

В документации написано:

314