#include#define maxn 1000
using namespace std;
int n, nex[maxn+3], mp[maxn+3][maxn+3];//n個點,nex存路徑,mp鄰接陣
bool expend(int s)
else
//若y的nex陣列未更新(-1),當前x未更新nex陣列就把x的nex記為i,然後i記為-1
//如果y的nex陣列已更新,但mp[y][i]不存在,那麼一定存在i到y的邊
nex[x] = i;//x從一進來的head到往後遞推停止一直都是有邊指向i
nex[i] = y;//y即x的nex無論是否已更新都記為i的nex,只不過是-1就更新一下隊尾
if(y == -1)tail = i;//如果y是-1,那麼隊尾記為i就好}}
if(mp[tail][head])//如果尾指向首,可以返回t了
return false;//如果隊尾不指向隊首,不成環,就重新選取st點再搜過
}bool solve()
int main()
return 0;
}哈密爾頓迴路
hdu3414:tour route
題意:給出乙個n階競賽圖(每對頂點間都有邊相連的有向圖),找出乙個哈密爾頓迴路(經過所有節點,且每個點只經過一次),沒有就輸出-1。
思路:競賽圖(n != 2)一定存在哈密爾頓路徑,但迴路就不一定了,需要遍歷每個點,構建一次哈密爾頓路徑,再判斷首尾是否相連。
sample input
50 0 1 1 1
1 0 1 1 0
0 0 0 1 0
0 0 0 0 1
0 1 1 0 0
20 1
0 00
sample output
1 3 4 5 2
-1
哈密爾頓道路與哈密爾頓迴路
簡介 1857年愛爾蘭數學家哈密爾頓發明了 周遊世界 玩具,用乙個正十二面體的20個頂點表示世界上20個大城市,30條稜代表這些城市之間的道路。要求遊戲者從任意乙個城市 即頂點 出發,延稜行走經過每個城市一次且只經過一次,最終返回出發地。哈密爾頓將此問題稱為周遊世界問題,並且作了肯定的回答。以下是一...
哈密爾頓迴路 C
突然記起來我大二寫了個哈密爾頓迴路.於是共享之.任務 求出全部的哈密爾頓迴路 完成感想 根據乙個 的演算法寫的,如果有高手可以提出改進的話,請發郵件到我的qq 409169964 ps 中國的 好多都是抄來抄去,只是名字改了.include include include include inclu...
「尤拉迴路」與「哈密爾頓迴路」
尤拉迴路 與 哈密爾頓迴路 1 尤拉迴路 17世紀的東普魯士有一座哥尼斯堡 konigsberg 城 現為 的加里寧格勒 kaliningrad 城 城中有一座奈佛夫 kneiphof 島,普雷格爾 pregol 河的兩條支流環繞其旁,並將整個城市分成北區 東區 南區和島區4個區域,全城共有7座橋將...