2007年7月3日 星期二

Problem 101 The Blocks Problem,磚塊問題

剛開始,不太了解題意,後來看到論壇的一段程式,才確定了題目的意思。

move a onto b:表示a和b的上面方塊都必須回到原來的位置,然後將a放在b上面。
move a over b:表示a上面的方塊都必須回到原來的位置,b上面的都不變,然後a放在有b的那一堆上面。
pile a onto b:表示b上面的方塊都必須回到原來的位置,a連著上面的一起都搬到b的上面。
pile a over b:a連著上面的一起都搬到有b的上面,b原來的那堆都不變。

剛開始我還以為要用到動態的陣列宣告,後來發現最多只要25個方塊,整個題目就簡單多了。

其實,我可以使用scanf("%s %d %s %d\n", str1, a, str2, b)的方式來讀取指令,可是我發現時,我已經用strtok的功能來完成指令讀取了。

這個題目對陣列的邏輯可以是個非常有效的訓練。

p101 問題連結
ACM 題庫目錄
回到首頁

沒有留言: