[理工] 107 交大 資演 10已刪文

看板Grad-ProbAsk作者 (dumpling)時間5年前 (2019/01/27 03:01), 5年前編輯推噓4(4015)
留言19則, 3人參與, 5年前最新討論串1/2 (看更多)
https://imgur.com/Wt5ikwe
對了板上的答案 發現這題沒有答案 所以我想來確認一下我寫的方法有沒有問題 麻煩有答案 或 板上的大神們 幫我修正 Give a instance for HamEx(G,x) G = (V,E) V = vertex in G E = edge in G 然後加入ㄧ點 h 不屬於 V and 加入ㄧ邊 (h,x) 不屬於 E 建造ㄧ個新的圖為G' = (V + {h}, E + {(h,x)}) 然後可以設計ㄧ演算法: 0 if(HamP(G))return No; //確認有無 HP 1 if (HamP(G')) then return No; //確認有無 x 非頭尾 HP 2 else return Yes; prove correctness: 已經由第0行確認有無 HP in G 所以只需檢查 if there is a HP in G from node u to v so that u,v! = x Claim : if there isn't a hamiltonian path in G' then there is a HP in G from node u to v so that u,v! = x if there isn't a HP in G' 因為 deg(h) =1 所以 h 必定為起始點或終點 則不存在有ㄧ條HP的順序為 h,x,........ in G' 則在原圖 G 中不會存在ㄧ條 HP 為 x 為起點或終點 換種寫法 if there is a HP in G from node u to v so that u,v = x 所以將存在有ㄧ條HP的順序為 x,........ in G 則可以找到ㄧ條HP的順序為 h,x,........ in G' 所以得證 Time Complexity : O(n^7)+O(1)(加一點和一邊) = O(n^7) 預祝大家考試順利! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.53.144 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1548529277.A.AAE.html

01/27 05:54, 5年前 , 1F
這問題不是問 u != x and v != x 嗎?
01/27 05:54, 1F
我改了一下跟寫了另一種寫法 但不知道哪個比較好像好ㄧ些 ※ 編輯: dumpling1234 (36.239.44.204), 01/27/2019 06:26:37 ※ 編輯: dumpling1234 (36.239.44.204), 01/27/2019 06:29:38 ※ 編輯: dumpling1234 (36.239.44.204), 01/27/2019 06:48:38 ※ 編輯: dumpling1234 (36.239.44.204), 01/27/2019 06:56:00 ※ 編輯: dumpling1234 (36.239.44.204), 01/27/2019 07:01:45

01/27 07:52, 5年前 , 2F
第0行怪怪的
01/27 07:52, 2F

01/27 07:54, 5年前 , 3F
使HamEx(G, x)為true的G也會使HamP(G)為true吧
01/27 07:54, 3F

01/27 07:59, 5年前 , 4F
我是想說把x和相對應的邊remove形成G'
01/27 07:59, 4F

01/27 08:00, 5年前 , 5F
然後檢查3個bool b1, b2, b3
01/27 08:00, 5F

01/27 08:00, 5年前 , 6F
b1 = HamP(G)
01/27 08:00, 6F

01/27 08:01, 5年前 , 7F
b2 = (!HamP(G'))
01/27 08:01, 7F

01/27 08:04, 5年前 , 8F
(說錯了好像不用b3)
01/27 08:04, 8F

01/27 08:04, 5年前 , 9F
然後return b1 && b2
01/27 08:04, 9F

01/27 08:07, 5年前 , 10F
原po加額外點進去的方法應該也可以 只是再要整理一下
01/27 08:07, 10F

01/27 08:28, 5年前 , 11F
HamP(G') = true 不代表 HamEx(G, x) = false 吧
01/27 08:28, 11F

01/27 08:38, 5年前 , 12F
歐對想到反例了 是錯的QQ
01/27 08:38, 12F

01/27 08:45, 5年前 , 13F
感覺把我的G'改成原po的G'應該會對?
01/27 08:45, 13F

01/27 08:56, 5年前 , 14F
應該也不對吧 同樣的道理
01/27 08:56, 14F

01/27 08:56, 5年前 , 15F
HamP(G') = true 只代表存在有一個 HP 開頭或是結束在 x
01/27 08:56, 15F

01/27 08:57, 5年前 , 16F
不代表 G 中不存在一條 HP 且 x 不在頭尾
01/27 08:57, 16F

01/27 09:04, 5年前 , 17F
哦哦懂了 感謝樓上 我再想想
01/27 09:04, 17F

01/27 10:56, 5年前 , 18F
如果G-x也有HamP 那代表G的HamP中x在頭尾?
01/27 10:56, 18F

01/27 11:18, 5年前 , 19F
代表 有一條在頭尾
01/27 11:18, 19F
文章代碼(AID): #1SJAvzgk (Grad-ProbAsk)
文章代碼(AID): #1SJAvzgk (Grad-ProbAsk)