Как пройти график с алгоритмомC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как пройти график с алгоритмом

Сообщение Anonymous »

Нужно найти, сколько переводчиков нужно, чтобы два человека могли разговаривать друг с другом.A : 1 2
B : 7 8
C : 4 5
D : 5 6 7
E : 6 7 8
F : 8 9
< /code>
и переводчики, которые мы ищем, как ниже < /p>
B > E Can translate directly, answer : 0
A > B Can't translate, answer : -1
C > F Need 2 translators C (5)> D(6)> E(8)> F(8), answer : 2
D > F need 1 translator D (6)> E(8)> F(8), answer : 1
< /code>
И написанный код, как показано ниже, но я не знаю, как пройти. Down - это графическое изображение, которое узлы в основном представляют собой от A до F и соответствуют им с тем же номером.#include
#include
#include
#include
#include

using namespace std;

#define SIZE 1000
vector* graph;
vector v;
bool vis[SIZE]{ 0 };
int n = 9;

int Search(int start, char ch1, char ch2)
{
int count = 0;
queue v1, v2;
v1.push(ch1); v2.push(ch2);
for (int i = 1; i < n; i++)
{
for (int j = 0; j < graph.size(); j++)
{
auto begin = graph.begin(), end = graph.end();
auto iter1 = find(begin, end, v1.front());
auto iter2 = find(begin, end, v2.front());
auto lang = graph[j];
if (iter1 != end &&
lang != v1.front())
v1.push(lang);

if (iter2 != end &&
lang != v2.front())
v2.push(lang);

}
}
fill(vis, vis + SIZE, false);
return count;
}

int main()
{
graph = new vector[n+1];
vector people{ { "A 1 2" }, { "B 7 8" }, { "C 4 5" }, { "D 5 6 7" }, { "E 6 7 8" }, { "F 8 9" } };
vector pairs{ {"B E"}, {"A B"}, {"C F"}, {"D F"} };
vector res;
for (int i = 1; i

Подробнее здесь: https://stackoverflow.com/questions/727 ... -algorihtm
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»