Реализация кода для проверки гамильтонианского пути (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

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