日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

『ACM-算法-图论』算法竞赛进阶指南--hamilton路径(模板)

發布時間:2023/12/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 『ACM-算法-图论』算法竞赛进阶指南--hamilton路径(模板) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面:我們主要還是分享算法的模板,而不是去刨析算法的原理!

什么是哈密爾頓路徑

哈密頓圖(哈密爾頓圖)(英語:Hamiltonian graph,或Traceable
graph)是一個無向圖,由天文學家哈密頓提出,由指定的起點前往指定的終點,途中經過所有其他節點且只經過一次。在圖論中是指含有哈密頓回路的圖,閉合的哈密頓路徑稱作哈密頓回路(Hamiltonian
cycle),含有圖中所有頂點的路徑稱作哈密頓路徑(Hamiltonian path)。

天文學家哈密頓(William Rowan Hamilton) 提出,在一個有多個城市的地圖網絡中,尋找一條從給定的起點到給定的終點沿 途恰好經過所有其他城市一次的路徑。
這個問題和著名的七橋問題的不同之處在于,過橋只需要確定起點,而不用確定終點。哈密頓問題尋找一條從給定的起點到給定的終點沿 途恰好經過所有其他城市一次的路徑。

實現:

// hamilton路徑 int f[1 << 20][20]; int hamilton(int n, int weight[20][20]) {memset(f, 0x3f, sizeof(f));f[1][0] = 0;for (int i = 1; i < 1 << n; i++)for (int j = 0; j < n; j++)if (i >> j & 1)for (int k = 0; k < n; k++)if (i >> k & 1)f[i][j] = min(f[i][j], f[i ^ 1 << j][k] + weight[k][j]);return f[(1 << n) - 1][n - 1]; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的『ACM-算法-图论』算法竞赛进阶指南--hamilton路径(模板)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。