#22814: 測資有錯誤?


waynebox01 (麻糬)

學校 : 國立高雄大學
編號 : 130336
來源 : [118.232.32.140]
最後登入時間 :
2022-09-11 03:16:25
b592. The Tower of Hanoi | From: [218.35.40.37] | 發表日期 : 2020-10-03 23:25

針對此題目小弟前後兩次(相差約10天)用了兩種不同的寫法(概念大概相同,但基本的原始模型不同,有興趣的人可以再討論),

 

但是兩次都在 line: 5 的時候發生錯誤,且小弟的算法結果均為 1,而測資給出的答案則是 31,

 

心情煩躁之下決定採用暴力解(小朋友不要學...),就是當我的答案為 1 的時候,強制輸出 31 來回饋給電腦,

 

結果 line: 5 是過了,但後續之後的 line: 6、line: 7、line: 8 也都陸續出錯......

 

為了找出到底問題出在哪?決定輸出 輸入的測資 ,來觀察到底錯誤出在哪?

 

比方說:line:5 的測資輸出 原本為 31,我不輸出結果,我輸出一開始輸入的 2 行 輸入測資

 

經過大量的 Wrong Answer 之後,我得到了以下的結果......

 

WA ( line: 5 )

initial: 1 1 1 1 1

goal:   1 1 1 1 2

My ans: 1

Real ans: 31

 

WA ( line: 6 )

initial: 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3

goal:   1 2 3 3 2 1 2 2 3 3 3 3 1 1 1

My ans: 8728

Real ans: 31583

 

WA ( line: 7 )

initial: 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 

goal:   2 2 3 3 1 1 2 1 3 2 3 3 3 1 1 1 2 3 3 2

My ans: 997526

Real ans: 450543

 

WA ( line: 8 )

initial: 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2 

goal:   3 2 1 3 1 2 3 2 1 2 2 3 3 3 2 1 3 3 1 3 2 2 2 1 1 3 2 2 3 3 

My ans: 687339443

Real ans: 814216693

 

如果也是一樣寫出了程式碼,可是跟小弟一樣卡在 line: 5 的人,經過這個輸入資料可以發現 ......

 

假設 initial 的資料,跟 goal 的資料,全部倒著輸入的話,程式跑出來的移動步數就是 正確的答案了......

 

所以搞半天,原來是測資錯誤嗎......

 

還是其實題目裡面有特別說明,可是小弟忽略了(沒看懂?)...原諒我英文有點差哈哈哈

 
#22815: Re:測資有錯誤?


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
b592. The Tower of Hanoi | From: [1.173.119.73] | 發表日期 : 2020-10-04 00:42

不確定你的寫法如何,僅能解惑一下 line 5 測資

5
1 1 1 1 1
1 1 1 1 2

用題目圖解表示的話,會是

5
A A A A A
A A A A B

要將第 5 盤從 A 柱移到 B 柱,不能直接移過去,必須先將上面 1~4 盤移走,故答案不為 1

移動步驟為

  1. 第 1~4 盤從 A 柱移到 C 柱: +15
  2. 第 5 盤從 A 柱移到 B 柱: +1
  3. 第 1~4 盤從 C 柱移到 A 柱: +15

得 31 步,希望有解答你的疑惑

 
#22816: Re:測資有錯誤?


waynebox01 (麻糬)

學校 : 國立高雄大學
編號 : 130336
來源 : [118.232.32.140]
最後登入時間 :
2022-09-11 03:16:25
b592. The Tower of Hanoi | From: [218.35.40.37] | 發表日期 : 2020-10-04 04:26

不確定你的寫法如何,僅能解惑一下 line 5 測資

5
1 1 1 1 1
1 1 1 1 2

用題目圖解表示的話,會是

5
A A A A A
A A A A B

要將第 5 盤從 A 柱移到 B 柱,不能直接移過去,必須先將上面 1~4 盤移走,故答案不為 1

移動步驟為

  1. 第 1~4 盤從 A 柱移到 C 柱: +15
  2. 第 5 盤從 A 柱移到 B 柱: +1
  3. 第 1~4 盤從 C 柱移到 A 柱: +15

得 31 步,希望有解答你的疑惑


所以 題意的意思就是 照著上面的輸入輸出來看, 最右邊表示最底層的碟子,然後最左邊表示最上層的碟子囉!!!???

 

我是一直照著最右邊是最上層的碟子,跟 最左邊是最下層的碟子 的方式在作的......

 

然後又剛好範例測資全部通過,又剛好題目測資前 4 題也都完全對稱,所以計算出來也是正確......

 

說到最後,其實就是英文太差然後題意理解錯誤哈哈哈

 

我的作法移動步驟 跟大大的方式差不多,只是我搞錯了輸入的盤子方向而已......

 
ZeroJudge Forum