[問題] 疊烏龜問題
恩...題目很簡單 但是我始終想不出來要怎麼用程式寫出來...XD
假設每隻烏龜都有兩個數據 自己的體重 和 自己最多能乘載的重量
現在有100組烏龜 每隻烏龜都有編號(0 1 2...99)
去作堆疊
請用程式找出 最多隻烏龜的排法(如果最多隻烏龜排法有很多種 那就都要列出來)
Output: 最多疊n隻 排列順序為xxxxxxx
=============================================================================
想了很久...XD但是始終找不到邏輯
我之前的一個錯誤做法,大家可以參考
=========================================================
第一隻放"最大乘載量"的烏龜
他的上面那隻放"max(第一隻乘載量-第二隻重量)"的那一隻
=========================================================
我用這邏輯去寫 也寫出來了 但是發現問題一大堆!!!
ex:
假設用這邏輯 我找出編號順序為 1=>2=>3=>4(也就是編號1是這data中乘載最大的)
假設經過這1234的排列後 最上面現在只能再放15g以下的烏龜
假設編號1體重10g 可載重100g
編號2+3+4 體重80g 但因為乘載關係 4的上面只能再放15g
現在有第5隻烏龜 重量15g 可載重90g
Q1: 1234 這時候也有另一個選擇了 5234 (最大乘載量放第一個不一定對了!!)
Q2:
選擇1234 4的上面只能再放15g 而5重量20g 所以不能放
選擇5234 4的上面只能再放10g 但是1的重量剛好可以放 所以就變成 52341.....
ANS:一開始的邏輯是錯的...= =最下面到底要放誰???
============================================================================
目前我還在想 聽說有人想出來了XD
但是我總覺得這題目真的可以做出來嗎...??
^^"如果有什麼結果我會再po文的 也歡迎大家想想這題目 討論看看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.0.217.51
※ 編輯: hatasum 來自: 123.0.217.51 (10/30 23:09)
推
10/31 01:14, , 1F
10/31 01:14, 1F
推
10/31 09:32, , 2F
10/31 09:32, 2F
→
10/31 21:54, , 3F
10/31 21:54, 3F
→
11/01 01:00, , 4F
11/01 01:00, 4F
推
11/03 06:46, , 5F
11/03 06:46, 5F
→
11/03 06:47, , 6F
11/03 06:47, 6F
→
11/03 06:48, , 7F
11/03 06:48, 7F
→
11/05 00:33, , 8F
11/05 00:33, 8F
→
11/05 00:33, , 9F
11/05 00:33, 9F
討論串 (同標題文章)