Реализация кода для проверки гамильтонианского пути (O (n))C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Реализация кода для проверки гамильтонианского пути (O (n))

Сообщение Anonymous »

Я знаю, что проверка дорожных путей Гамильции-это NP-Hard. Я написал реализацию, которая использует DFS и поддерживает переменную подсчета для количества изучаемых узлов. DFS строит дерево, и моя интенсивность проверяла, существует ли узел листового узла, и не является исследованным NTH Node (n = количество узлов на графике). Это подразумевает, что не существует гамильтонианского пути. Ниже приведена моя реализация. Я не могу придумать контр-пример, где мой код не удается (или я решил NP-Hard?) Ниже реализация в C ++: < /p>
#include
using namespace std;
#define ll long long
#define vi vector
#define vll vector

#define rep(i,a,b) for(int i=a;i> args), ...);}
template
void put(T&&... args) { ((cout n>>m; // n = number of nodes, m = number of edges
rep(i,0,m){
int a,b;
see(a,b);
graph[a].pb(b), graph.pb(a);
}
dfs(1,n);
if(!possible){
put("IMPOSSIBLE");
cout

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

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

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

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

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

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